Proteins carry out their functions by interacting with other proteins and small molecules, forming a complex interaction network. In this review, we briefly introduce classical graph theory based protein-protein interaction networks. We also describe the commonly used experimental methods to construct these networks, and the insights that can be gained from these networks. We then discuss the recent transition from graph theory based networks to structure based protein-protein interaction networks and the advantages of the latter over the former, using two networks as examples. We further discuss the usefulness of structure based protein-protein interaction networks for drug discovery, with a special emphasis on drug repositioning.