I was going to rant and realised I was out of time.
But I blame software. Bad software. Not software that doesn't run at all, or crashes and burns every couple of days or weeks, but just plain niggly bad software. Badly thought-out, badly designed, and badly implemented.
Software that doesn't provide any option for setting default behaviours (except maybe the colour scheme).
Software in which <enter> works exactly the same as <tab> and moves the focus on to the next field (including text areas) except one which doesn't take focus. It looks like it does, but your subsequent keystrokes are ignored. Or at least you think they're ignored, but they're actually going into another field (which however doesn't change state to reflect this). So some other data somewhere gets corrupted because you forgot to click the field with the mouse and just tabbed (or entered) into it.
Software in which the backspace key's effect is handled by the field's display but not the code behind it, so that 140HH50 is displayed as "150" but is actually "14050". Ye Gods, I thought this kind of error went out with the THERAC 25!
The backspace key works, but not the delete key.
The delete key works, but it clears to the end of the line.
Software that simply does not match what the company is using it for, so that every task becomes a special case that involves out-of-band communications (phone calls, paper messages, and word of mouth).
Failure to consider how data gets into or out of a system, so all sorts of bizarre methods are used (often simultaneously) in order to maintain some sort of synchrony with the outside world.
Terminology that doesn't merely differ from that used by the company, nor even from general usage in the real world, but differs from section to section within the program.
Weird and wacky access requirements that mean an entire existing network has to be bent out of shape, causing all sorts of ACL impedance mismatches, so that the software can be fitted in.
Scripting facilities? Not on your Nelly.
GUIs that require five pages of forms, with dozens of fields each (and typically only requiring three or four fields to be filled in on each page), for tasks that have to be repeated three or four hundred times an hour. (See "defaults, lack of", and "scripting, lack of").
Layouts that fall apart if some changes the screen resolution or desktop colours.
Observation from life: a company is always "changing its systems".
When a new staff member is given a manual (I should say "if a staff member is given a manual". These hardly ever exist; more likely it's (at most) a few pages knocked out in Word with a couple of screen shots and arrows saying "click here and then here and then here"), and if they are lucky, they'll be warned that it's incorrect and that actually you have to do this and this and this .... and Oral Tradition is preserved. Of course, no-one ever remembers all of this at the outset, so it gets doled out one datum at a time - immediately after it is required.
The frightened thing is, this grinding drag on the company's productivity is still considered cheaper than fixing the problem.
And people put up with this. For some reason they are so cowed that they have come to accept bad software. They put up with the bugs, they put up with the lack of quality and finish. They don't complain, they don't report the bugs. They just shrug and go "well... that's the way it is". Everyone using XP is still using the Big Blue Bubblegum look because they are too scared to change anything now that they have got it "working".
What has given them such a bad impression? I'm sure it's not intentional on the developers' part (it's not intentional on mine). It's not jus a matter of developers being out of touch with users' needs (I wouldn't be surprised if there is some of that; users don't select the tools they use, management does); but that doesn't excuse the million-dustbin dinginess. Is it really so difficult to change the font of a text field so that it matches the font of every other field on the base? Is it really so difficult to have a dialogue box with tabs the same colour as the fieldset's background (or are you forced to have the fieldset match the desktop settings and the tabs one specific colour that just happens to be the same as the default desktop's)? And if you're going to have a set of icons, is it too much to ask that they be consistent? Not just in form but in style? Or don't you care about that? Is it really so difficult to use something other than email to communicate between programs, and do you really need to override the system's default printer momentarily in order to print? And if you're going to be using several printers, is it unavoidable that occasionally (once or twice a job) your program will forget which printer it's supposed to be using and need reminding or it will go ahead and use the wrong one?
If there is hope it lies in the users.