My main annoyance: GUIs that look good, but just suck at covering up the configuration of a Linux box.
I tried setting up my girlfriend's laptop to use our WiFi card in the several settings where it's needed -- college library, Starbucks (w/ T-Mobile), my place, and generic public spaces. Each one of these had different requirements. College needed a specific SSID. T-Mobile required a different SSID. My place requires a 128-bit WEP key. Generic public hot spots require an empty SSID and no WEP key.
Under Windows, this is fairly easy. Both Linksys and Cisco provide reasonably intuitive apps for creating multiple profiles, selecting between multiple profiles, and configuring each profile independently. I get fairly instant feedback as to whether a given config is the right one, as well, by looking at the link strength meter. Wrong SSID or WEP key? No signal. Got it right? You get a signal. Bad DHCP lease? Release lease, and reacquire it. ("Repair link" under WinXP, or "Renew lease" with winipcfg under Win98.)
Under RedHat 9, there is an a completely non-intuitive pair of applets for doing the same thing. I remember it having multiple layers -- you define some sort of baseline config and different profiles that overlay on it in some non-intuitive manner -- but it was so oddball it will take me a half an hour of digging through docs again to remind me of how it works. It didn't help that there were two separate interfaces to the same data--one intended for root to configure, one intended for mortal users for selection--and neither was clearly delineated. I initially accidentally created 4 virtual devices for my wireless ethernet card rather than 1 device and 4 profiles, since it was that non-intuitive. Not to mention that simply opening the app and selecting a profile causes the app to consider the profile modified. ("Save changes to profile foo?" it asks on exit. What? I just activated the profile, I didn't change it!)
It was and is a mess.
And when the wireless didn't work, I got no helpful feedback. Don't have my WEP key spelled right? I get a strange kernel message about an invalid parameter to a syscall or something, and then a mysterious DHCP failure. Huh? It gets worse when the DHCP client then decides to try to reuse a DHCP lease from its last successful lease, but that lease was from an unrelated network.
It didn't help that on this laptop, the linksys card I have is buggy and dies after I send too many small files. I can work around it by setting my MTU very small, but guess what? I don't recall anywhere in the GUI can you change the MTU. (It might've been there, but I don't think I found it.) I have to slink around /etc/sysconfig/..... reverse engineering to determine which files are the source files the GUI uses for configuring the network, and which ones are the "do not edit, the GUI copied this here from somewhere else when you selected a profile" files. Grrrrr!
And I've been using Linux since 1993!!!!
If I'd done this the old fashioned way, I'd figure out the four different 'insmod'/'ifconfig' command sequences I needed (with perhaps some additional dressing to kick dchpclient), put them in 4 different scripts, and be done with it. And it'd probably work better, to boot.