I was just whini- er,
talking about this, this morning.
The main issue is that end-users not only accept crappy software, they pay for it (sometimes, quite a bit). They also recommend it to others, give it good reviews, and subcultures of "tech-macho" workarounds to bugs cause people to actually prefer crap. It's infuriating (to me, but not, perhaps, to many tech companies).
As long as that keeps happening, the quality of software is going to remain in the shitter. It doesn't make economic sense to write good software. Writing high-Quality software is a lot more expensive than writing crap.
My software tends to be pretty high-Quality, but that's mainly because it is free software, and I tend to work alone, so its scope is quite limited. I would not expect a commercial company to develop software the way that I do. It would just cost too much.