I tried a bit of CoD 4 and played the CoD 5 beta. I like both of them a lot.
I also tried ArmA and America's Army. There wasn't much to do in ArmA though and my computer didn't like it too much either so I stopped. I liked America's Army a lot but the thing that made me quit was the gameplay. If you die, you have to wait until the round is over and get only so much action. If you suck like I did, you would get really frustrated with how little action you get.
And I'm guessing that's why so many people play Halo, CoD, or whatever. Most of the games are team deathmatches or free for all so once you die, you can get back into action. It's not reallistic but its really fun.
Also, the more action you get, the more experience too. You are litterally practicing everytime you're in battle. Dying and waiting doesn't give you so much practice and so to get better, you would have to make a long-term commitment to something like America's Army but in CoD, you don't have to. Even just attempting to shoot someone gives you more experience so even if you don't have some crazy amounts of kills, you're still learning.
I'd play CoD non-stop or even America's Army (if it had deathmatch) but right now, I have to deal with a science project featuring LFS and cellphones.