The 1984 Winter Olympics were also held in a communist country. Don't think there was that much protest about it, though.
Sarajevo of the then Yugoslavia. The games had a warm atmosphere around them, although parts of the Olympic Games being used in the civil war less than 7 years later provided some pause. The bobsled run constructed for the games was being used by soldiers as a shield against bullets.
Also, Sochi, Russia (in the Caucusus Mountains near Georgia and the Black Sea) will host the 2014 Winter Olympics.
The International Olympic Committee will probably let a country like China host the Olympics again. In a sense, giving the Olympic games to a nation like China, is like giving a good behaviour bond to a criminal. They are satisfied with their progress but assume their past behaviour won't happen again. But with China as we know, it's still happening. Bad move by the IOC.
Can we all realize that all the countries make up the IOC? China wouldn't have gotten the Games if the major countries around the world hadn't've agreed to it, and that includes the U.S. and Europe.
As jeron said, the Olympics is only about making money. There's a huge amount of American money in the Olympic movement that would have pulled out if they had any moral qualms at all about Beijing being host. They didn't, so they endorsed the Olympics being in Beijing, probably in the beginning.