You can choose to have little action in BF2, at which point you have enough time, space and whatnot, to be able to type and play. Its not that BF2 community is much different, its just the game can be unengaging. I can pretty much fly and type the whole round.
When it comes to COD4 (ETQW aswell, mind you), theres no point in typing because the messages flash off quickly. Plus, the game is fast and youre always in action, which also means that you have no incentive to stop playing, even for a moment.
Also, b"thcing occurs when a lot of same-language speaking people play together (surprise, surprise, English).
Games Ive seen limited ammount of b!thcing. CS1.6 Scandinavian servers and SWAT4 european servers. Scandinavians are just "cool" and Euro servers for SWAT4 are just too multilingual to really be using any English words. I just say "Kurwa" when Im pissed :P.
Which is why I vote for lobby system. People can b!tch their hearts out there, and if the game is fast paced, they have little incentive to do so in game.
And cant forget the last bit. Too many kids on the net...