None of the social networks is doing a good job when it comes to their user interface for finding people. Unless you know in which town and country they currently live, or which company they currently work for, you’re pretty much out of luck.
Take this example. Let’s suppose that back in the 20th century I worked in town XYZ in England and had a colleague called Slarty Bartfarst (fake name of course). Now, more than a decade later, I decide I’m going to see if I can find him. So I put in the name Slarty Bartfarst and (because the real name is way more common than that) I get hundreds of results spread all over the world. I’m presented by some fake id pictures, some tiny ones, some with costumes and hats and sunglasses. I haven’t seen the person for nearly 20 years, he could be any of them. OK, he was in England last time I saw him, but he could be that person now living in Bangkok, or Hawaii, or New Zealand. How should I narrow down my choices? That’s the crux of the matter. I have no way of eliminating anybody from that list of hundreds or even thousands.
You need to be able to allow some flexible criteria. For example, “once lived OR worked WITHIN 50 miles of XYZ in England”. Or how about “has AT LEAST 5 friends WITHIN 50 miles of XYZ in England”. Or has ENGINEER in his job history. Or has FOOTBALL in his likes. You get the idea. I could quickly eliminate anyone who’s never lived in England, has no friends near XYZ, or doesn’t like Football. It may not be perfect, not everyone fills in all their profile, but give me some damn options that I can play around with. Shove it under an advanced button.