Great, my first post here. Thought I'd try to add something intelligent to the discussion.
Often when a game is being developed, core technologies are being chosen to drive the game (this sound system, this graphic engine, etc.). They could be developed internally or bought from a third party. The minute these decisions are made, the deadline is set, because these technologies have a limited lifespan due to the rapid evolution of technology. These problems don't occur in business software, because they rarely operate as close to the hardware layer like games do, but rather they run on a target platform, which in itself allows more flexibility and so-called "lazy" programming.
People want to see shiny and new things foremost, the exception being only the most dedicated of fans (Dwarf Fortress anyone?). Guess what the target audience of this site is? Yup.
And there's ofcourse the decisions being made by management, who try to squeeze every penny out of their product as possible (who doesn't like to drive in a fancy car?). Please do not blame the developers for those decisions. That's like blaming the car assembly guy for a faulty engine. Most developers I know take pride in their jobs and the products they make, but when the deadline hits, they can't keep tweaking and fiddling forever. When the number of lines in code doesn't grow (even though they might get changed a lot), managers tend to view the product as finished.
Finally, let's tend to look at the sector for which the programming is being done: the entertainment sector is something entirely else then a system designed for operating the space shuttle for example, which absolutely has to be faultless because lifes are at stake. But I bet you can't run CiV on that last one either.
Just saying, relax. If you want a product without any flaws, be prepared to shell out more than 50$ (try adding a few zeroes). How many do your customers pay for their software? If the bugs are so game breaking you can't play a proper game, submit them to fireaxis, and use your experience to help them out by providing a detailed report about your system configuration and things you might have done. They might even get it fixed sooner if your helpful instead of just a number with a vague description. Since you're a programmer you should also know it's hard to fix a bug when you can't reproduce the problem.