Gotta say, Bad Company 2 all the way. Call of Duty fell apart when Medal of Honor brought Airborne, and CoD had... jack. So they went modern. Battlefield was new to me with BC2, but I was skeptical after all I had heard of the Battlefield series on here. So, direct points:
Modern Warfare: Haxxorz. This game is entirely unbalanced. There are one or two ub3r guns that the 12 year olds online are going to use 100% of the time, and they will be tough to beat simply because the weapon has little to no downside. You see a LOT of the classic skipping (Constantly jumping up and down to be hard to hit) while spraying like a little girl. Multiplayer weapon unlocks are based on single-player mission completion, which is a downside if you want to skip the single player and jump right into online play. This is very much a one-man game.
Bad Company 2: Buggy. This is the best balance I have ever seen in an online FPS. The M95 is a one-hit-kill monster, but the bullet drop makes it tough to use. The M16 is fast and powerful, but lacks accuracy at range. The MG3 has an AMAZING refire rate, but lacks stopping power. The AT4 is powerful and can be manually aimed, but cannot hone in on the tracking beacon. No individual weapon is the be-all and end-all here. Now, the 12 year olds still like to jump around, but that's what the Hellfires are for. And when some little whiner camps the spawn in a tank... sneak around and place a couple land mines (My favorite trick) and that tank is GONE. You have a damaged friendly tank? Bring an engineer to repair it. Team mates injured or dieing? The medic can heal them, or even bring them back to life. Out of ammo? Infantry has got your back! Now, the downside. There are quite a few bugs in this game. Certain spots you can "glitch" to. Also, a lot of solid hits go undetected. So, as far as the technical aspect, BFBC2 needs a lot of improvement. But due to the balanced gameplay, I will pick it 100% of the time over CoD.