Here are references for a graph theoretic / social networks approach to clustering:
Guimera , R., Sales-Pardo, M., Amaral, L. (2004). Modularity From Fluctuations In Random Graphs and Complex Networks. Physical Review E. 70 (2), 025101
Reichardt, J., and Bornholdt, S. (2006). Statistical Mechanics of Community
Detection, Phys. Rev. E, 74, 016110 (2006), URL:
http://arxiv.org/abs/cond-mat/0603718.
The algorithm is implemented in an R package called igraph and is called spinglass.community().
The subfield is often called "community detection," "graph clustering," or "network clustering" and there are many algorithms. This one happens to handle signed and weighted edges.
The following reference compares many algorithms for efficiency:
Danon, Díaz-Guilera, Duch & Arenas. (2005). Comparing Community Structure Identification. Journal of Statistical Mechanics: Theory and Experiment. 2005 (9), P09008.