As an intuitive approach, consider that instantiations of NP-complete problems are not always as hard as the general case. Binary satisifiability (SAT) is NP-complete, but it's trivial to find the solution to A v B v C v D v ... The complexity algorithms just bound the worst-case, not the average case, or even the 90% case.
The easiest way to reduce a NP-complete problem to something simpler is to simply exclude the hard parts. It's cheating, yes. But often the remaining parts are still useful for solving real world problems. In some cases, the line between "easy" and "hard is easy to draw. As you pointed out for TSP, there is a strong reduction in difficulty as you constrain the problem around "normal" directions one might think of. For other problems, it is harder to find real-life useful ways to segregate the easy and hard parts.
To totally leave the realm of CS and mathematics, consider an old car. Your friend wants to drive it. If you have to tell him, "hey, the car works perfect. Just don't take it above 95mph. There's a nasty wobble that'll knock you off the road," it's probably not a big deal. Your friend probably only wanted to take it around town anyway. However, if you have to tell him, "you have to feather the clutch just right to go from 1st to 2nd, or the engine will stall," it might be harder for your friend to use the car around town without some minor training.
Likewise, if an NP-complete problem happens to only get difficult in exotic cases, it reduces complexity rather quickly when you look at subdomains. However, if it gets difficult in commonly occuring cases, there aren't so many useful subdomains which avoid the hard part.