Like you said, good non-buyers just leave such games eventually. A closed system game is fun when you have others, but the minute those other players can open the system up to the outside is when it is no longer fun.
When I find rampant buying/selling in a game, I just stop playing it, not necessarily because I'm outraged or the like, but because for me it's no longer fun, the game has proven to be easily cheatable (the system is open). I don't find games fun when I can cheat in them either, games like GTA:SA allow you to cheat, but I restrain myself (mostly by not even learning how to cheat) and get unlimited fun out of it because I don't cheat (I only control my restraint however, so in multiplayer games that's not an option).
MMO games cheating usually leads me into Single Player games, which then leads me eventually into LAN or Direct IP games (like Civilization 4) where it's just assumed no one is going to cheat, because you're in it for the fun of equal competition.
Then I try MMO games again, forgetting that people will cheat if given the chance, because more people sounds better than less people. And the cycle starts over.
Second Life is neat with its system, though its less of a game of competition and more of a tool with great community (reminds me of modding communities).
For competition games (involving time-based power-gathering, i.e. leveling and equipment grading), I think people will always cheat, it's fairly hard to stop it (even if you make currency non-transferable, you'll still get account selling), and the anonymity of such games makes many feel like they can screw the game over for others so long as it gives them some quick thrill.