Following up on previous ideas on P2P social networks, one idea I recently had about peer-assisted private key recovery was the possibility of using erasure codes with symmetric encryption. You'd encrypt your private key with your password, use an erasure coding scheme to break it up into chunks so that you'd need some N > 1 chunks to recover the encrypted key, send out a chunk to a friend when you "friend" them.
When you're at a public computer, your friends would only send a chunk to you if you've managed to authenticate with them (using a zero-knowledge password proof, perhaps SRP). When you've collected enough chunks, you get the encrypted key, and decrypt it with your password.
You'd have to trust your friends not to collude to share chunks with each other, and even if they do, they still have to guess your password.