Disclaimer right up front: I am an engineer. I am not a formal code slinger, I just got a minor in it. I never took any formal software design courses or anything (all the courses were language related).
The main simulation I use at work was coded by engineers. It is the ugliest, most painful thing to work with on this planet. The way our (honest to God, not an engineer-turned-software) software guy describes trying to do a quick fix in it is like 'putting a band-aid on a sucking chest wound'. Because of their way of coding, it takes us an insane amount of time to make modifications or fix it (because we do it 'right'). It seriously pisses off our customers because we have to charge so much for our services.
That is from another component of the company (other side of the country). The way our group works is we have engineers define the requirements, and real software engineers do the coding. I'm kind of like a liason between the two groups.
Working with that chunk of code really taught me to appreciate how to do things the 'right' way. I could write a disertation on how crappy programming affects the product. I really feel your pain.