This has been a problem with every internet pub game ever. If you find a realistic solution, let us know.
Usually it happens because of a stacked team. I hold that the shitty players are just as responsible for not stacking themselves on one team as the good players are responsible for not all banding together. Everyone puts the onus on the guys at the top of the scoreboard for not stacking, but there are tons of times when all the bads have stacked one team and you have the option to watch or stack. Eventually you can switch, but the damage has been done already because the opening part of the game is the most crucial in every game mode.
Right now you've got a few conscientious vets who will usually try and fix things by themselves, but the only way you'll ever get consistently fair games is if every single player can evaluate their own relative worth and actively try to balance the teams based on that evaluation (read: never).
And despite what the overreactionists say, this is not the reason for the low population of the mod. There's no alternative game you can go to and get perfectly fair teams. Go look at Global Agenda - they have an entire system in place to try and prevent team stacks (Microsoft's TrueSkill system
http://research.microsoft.com/en-us/projects/trueskill/), and they only let you queue up for pvp missions with a single friend to avoid premade teams, but games are still steamrolls on a regular basis.
Edit: Just wanted to add that most of the time, the winning team is not doing this intentionally. They are just playing the game and using the tons of cash they have. Very few people will ever take the time to intentionally downgrade their asset to control a stomp. This is just human nature. No matter how many forum posts there are about this (there have been many, and will probably be more in the future), the majority of the playerbase of any game does not visit that game's forums.