When I used to play America's Army, which was created by the US Army as a recruiting tool, they had all of the multi-player game types written from both sides. I dug up an IGN article describing how this worked:
The terrorists are holding a UN envoy hostage and you, as the Army team, must infiltrate the area and confront and defeat the terrorists. But the other team doesn't think they're terrorists. Instead, they get an Army briefing indicating that they've been asked to defend the envoy from possible abduction by an infiltrating terrorist force.
That way everyone could play for the "good guys". Everyone could fight for the cause they thought was right, which is usually how war works anyway. There wasn't any controversy about you shooting at people who thought they were playing as "America", because while you played they looked like "terrorists".
The system was clever, and probably appropriate for this application (I don't think the US Army wants to encourage people to shoot at them), but as we have games based around modern conflicts, people have to play both sides. It is "just a game". Cops and robbers would be pretty boring with no robbers. Should we not watch heist movies because it encourages people to steal money? Modern Warfare 2's No Russian mission (in which the player is undercover as a terrorist and has the option to massacre civilians with no penalty) created controversy in the US, but the overriding opinion was that it right to include it in the game. How is this any different?
Oh right, this time we're shooting Americans.