I think the best bet is just to clip their claws.
I have a cat that I TAUGHT to jump onto my chest. I ask him to come up, he jumps and I catch him. (I used to have this vid posted somewhere here http://s207.photobucket.com/albums/b...0218100051.mp4
Unfortunately he doesn't quite understand that he needs to jump higher for taller people (I'm 5'2". My husband and his friends are 6+), or that not everyone is expecting him to jump. Or that it MUST be done from the front
He gives warning that he wants to jump, but no one but me and my husband understand that he's staring questioningly because he's asking if he can come up (and if you don't say anything or don't move he figures your answer is yes...), or that people can't see him when he's behind them.
He actually reacts really confused when no one catches him and looks forlorn. He doesn't stick his claws out if you catch him or if he ends up on your shoulder, he does it when you DON'T catch him and he's left sliding down you wondering why you're not holding onto him.
So yeah, it can be kinda painful. He's not as bad about it now, but until recently I kept his claws clipped due to lacerating several people unexpectedly (they didn't even know a cat was there much less going to jump. probably thought a wild animal attacked them or something
). He's very very friendly and anyone is a possible "victim". I also make the point of warning everyone that comes in the house now.