The history of the civil war is complex. In my reading, I have come to realize that both the north and the south had reasons to be wary of the other starting an empire. The war with Mexico was started by the south. The south demanded that those in the north help return runaway slaves, violating their right to conscience. On the other hand, the north insisted that states had no right to secede, or even to nullify laws they didn't like. They used military intimidation. They pushed through controversial international trade agreements that economically hurt the south. Across the country there was fear that a major secession, if left unchallenged, would set a precedence for other states to secede until the union dissolved, leaving them all defenseless against Europe. There was a lot more going on than just slavery.
Even during the war, the south was abused unecessarily. A lot was burned. President Lincoln outstepped his constitutional authority when he arrested the Maryland legislature to prevent them from voting to secede as well. I can see why some people would want to keep the confederate flag - even if for no other reason than as a memorial to those who fought the north.
The history is unimportant. Here's what it comes down to: the flag means different things to different people. Don't assume that those that wave it are racist or celebrate slavery. There is no need to be offended. At the same time, is it really necessary to rub the flag in the faces of those it hurts by displaying it on public (state) land?
Personally, I don't care whether it's flown or not. I live in a northern state anyways. I just encourage you to listen to each other and accept that sometimes people take things different ways. There is no need for so much controversy.