This is an old question, but I want to make a point clear:
Yes, the present perfect is used all the time, by native English speakers, in all registers and dialects of English, from extremely informal to very formal. You cannot sound like a native English speaker without using it when it is called for. (It's not like, say, knowing how to use "whom," which you don't really have to do.)
The good news is that, in a lot of places, the two are interchangeable. Moreover, you are likely to use the past more. Also, using the present perfect in the wrong place will sound very strange and sometimes make you unintelligible, whereas using the past in the wrong place may communicate the wrong shade of meaning but will rarely get your listener completely lost. Therefore, I recommend using the past most of the time, then inserting the perfect gradually if you are sure you are right.
To make sure I wasn't wrong, I turned on the TV now to a sitcom rerun. Ignoring other tenses (mostly present) here is my tally in ten minutes or so:
past 31
present perfect 4
and some other past tense constructions:
"lately, I have been having thoughts"
"I think that may have missed the table."
"oh God, I shouldn't have said anything"
"he kept laughing at..."
No, that is not correct.
I have broken my leg (without the yesterday) can be used in two situations that I can think of:
1) "I have broken my leg four times in the last year!"
In this case it means that your leg was broken at four different times in the past year, but it doesn't necessarily say your leg is broken now. I might be broken now or it might not; it doesn't imply anything either way.
2) "I've broken my leg!"
I can see this being said as a surprised exclamation at the moment your leg is broken. As in, "Oh my god, my leg just broke!" This means that, at this moment, you have just broken your leg. Now whether or not anyone is coherent enough to actually say this when they break their leg is another matter, but it would be valid at the time if they did say it.
Now, if you broke your leg yesterday, you cannot accurately say "I have broken my leg." Your leg is currently broken, yes, but we say:
I broke my leg yesterday.
The action of breaking occurred yesterday, so you use the past when talking about it. If you want a sentence in the present, you can say something like this:
My leg is broken; I had an accident yesterday.
Best Answer
As FumbleFingers and 1006a mention in the comments, there's nothing grammatically wrong with using the present perfect with "when". However, it imbues the question with nuance, since it often implies that there has never been such an occurrence (though you would expect there should have been.)
This usage would normally include a word like "ever" to emphasize that the event never happened.
Alternately, as a response the present perfect can be used to express doubt: