Originally Posted by
laserlight
If you want to use "earthquake zone" as an analogy for "user input", then earthquake zones are almost everywhere. The only places where there is no earthquake zone is when you can guarantee that the input will not result in buffer overflow, but in practice that means that you are only programming for yourself or for some very special scenario, e.g., a programming contest for which test input is guaranteed to be correct.
The core problem is that gets cannot be rendered safe. You can only assume that the input will not result in buffer overflow, and this is almost always a bad assumption. Hence, the good practice is to avoid gets. Use it at your own peril, and you will be slammed for suggesting it to others here.