Wow... That's a post...
It does NOT just work. I wanted to perform the equivalent of cloning my system partition to a newer, larger drive, then I wanted to turn that into my startup disk. On a Mac, that's a quick run of SuperDuper!, followed by setting the startup disk in System Preferences. There MAY be a similarly troublefree way to do this in Linux, but I could not find it. I did, eventually, succeed. It wasn't fun. (Answer: LVM, and then I think I used grub from the command line, because the magic-friendly UI buttons didn't seem to work.)
Clonezilla and Partimage are the first they pop on my mind. They have GUI, they can do anything what a normal person can imagine to do (and command line with dd for the rest)
Other gripe, adding a new disk (one of those big ones that lies about its block size), the tools were an abomination. Command-line tools were borked by the block size (ask for N gig, get N/8 gig, awesome), GUI tools would by default misalign the partitions, then tell me what a bad stupid person I was to not align the partitions, why don't you repeat the operation and see if you get a different result? And I know, after extensive Googling, that it doesn't matter that much for ext4 anyway. It's UI clusterfuck of misinformation, poorly chosen defaults, and irrelevant insults to the luser.
So you say that adding non-standard new disks to the Linux PCs (including opening the case, connecting cables and everything else) is a operation which an average user can do on Windows and/or Mac.
There's all sorts of fun stuff you can do in Linux, that does not matter to most people.
The same applies to all computer systems. Do you really think that Mac and Windows don't have fun stuff under the hood?
My experience with MacPorts on the Mac suggests that it is possible to have a generally-useful computer that is also 90% nerd-friendly
My windows PC is nerd-friendly, why Mac shouldn't be. It's only a question how you use your system.
so I think that the Linux problems are more developer-side cultural rather than technical; stuff that matters to nerds (or to companies sponsoring nerds to work on Linux) does not matter to "most people".
To most people only what matter is a web browser.
The "wrong stuff" is what gets optimized, the stuff that matters to people who buy Macs, does not.
That is a reason why I take Linux and not Mac. For me is the right stuff optimized.
So here's my advice:
1) The defaults should be set right for "normal" people, in the interface that "normal" people use.
Defaults are tried to be set to the be most logical and effective.
Treat that interface like it is the most important one, not an afterthought.
Why? Do you start programming the interface or the functionality? Interface is (as the name says) the intermediary between a human and a program functionality.
Consider operations at a high level, not a low level -- add a disk, remove a disk, backup a disk, (maybe) convert to RAID. NOT, "align a partition", "copy blocks", "install a bootloader" (and I have bootloader choices, and one of them is apparently VERY WRONG, WTF did you hand me that kryptonite for?)
The reasons are historical. Linux is a UNIX child, and UNIX used that names. If the "normal user" first came in touch with those terms, they would be more used. Or do you think that RAID. DISK, BACKUP are natural expressions?
2) The need to RTFM before doing anything at all is a bug. Figure out what people want to do with your tool, and give them instructions to do that, with progressive disclosure as they get more confident, adventurous, interested.
You will need to give us some examples here... I'm not sure on which tools are you hitting here. Most tools I use are self-explanatory.
3) If you're going to have desktop design battles, don't inflict them on "normal" people. I cannot even keep track of GNOME-this versus KDE-that, let alone what the alleged merits are. (Did KDE lose?)
No, KDE didn't lose. You can use it in the same way as GNOME, Unity, xfce,... It's your *choice*.
4) Learn to write instructions. "Documentation" is the wrong word, I think it gives people the idea that if you simply mention every detail, it is "documented". Don't use vague terms like "appropriate". Give examples. Ask yourself, whenever writing down unambiguous instructions (a) why is it so hard to write unambiguous instructions -- do we have gratuitous variation between different flavors of Linux? how can that be eliminated and (b) why isn't this a bash/python/whatever script, activated by a button press? If you can't explain it carefully enough for a computer to follow the instructions, are you sure you really understand how to explain it? If the result has ten knobs to be set before the button press, are the knobs really necessary? Are the ones that are necessary, explained? Is there an "undo" button?
Writing documentation is BORING! The main problem is that open source community has a lot of programmers, but not enough people who will write documentation. That is a reason why software vendors have paid people who do only that - write documentation for end users.