Oof. This is a BIIIIG topic, so let's ease into it gently with a couple links.
First, There's a Slashdot article about Crufty UI that's running right now. It's very interesting. The guy who wrote it (mpt) had some really great input for Simpleface while it was living. It's worth a gander.
Secondly, David Watson responded to my Web UI is better comments:
Comparing the browser's interaction model with other GUI applications is apples and oranges to a certain extent. A fairer comparision would be to examine user's experience with a single part of the application, say the tools/options dialog in both Explorer and Microsoft Word. Another way to level the comparison would be to compare a dialog interaction with a similar web form.
The browser becomes monolithic for most novices these days and thus, so does the navigation model. The browser's page stack back/forward model provides an answer to the discoverability of z-order for novice users in a similar fashion to the way that task bars have done the same for desktop users. In addition, most novices use a very small percentage of the browser's options, just as they would in a word processor. The difficulty comes when they need to go outside the most rudimentary browsing.
The homebase desktop folks have actually taken this idea to it's logical conclusion and implemented the browser's navigation model as the operating system's desktop. While there's some reason to believe that this may be an easier way for novice users to navigate their operating system, it can be incredibly frustrating for experienced computer users. Don't believe me? Try it yourself.
Now, David has a point, but I'm not talking about HCI guidelines per se. I'm talking about the sheer number of choices a normal GUI gives the user. Let me expand on what I was saying before a bit.
Have you walked your parents through using an application via the phone before? I have many, many times. But only for GUIs. I never have to walk them through web applications. Why? It's because in a web application your options are limited, memorizable and understandable. The design may vary widely, but there's still only a finite number of things to do, and most of the time, the actions you make are very defined also. There's no "double-clicking" or "dragging-and-dropping" in a web page. You click once and something happens. This is a good thing.
Here's what it's like for my Mom every time she has to use a normal application. First there's a different UI she has to learn - different menu structure, icons, images and widgets placed in a bewildering number of places that she can never seem to remember. And the most dreaded? The pop-up dialog. My Mom cannot deal with pop-ups. She's not a moron, she just never seems to notice them nor understand why they are so insistant (i.e. modal). And why should she? Why should this small window that comes up in front of whatever you're doing get precedence for no reason? In a web page, if the application NEEDS to tell you something, normally (if the web designers aren't complete morons) the whole page will change, your focus will change and you will understand "To get back to what I was reading/doing I need to do something here." Popping up windows and flashing icons at the bottom of the screen mean NOTHING to most people.
The problem with GUI designers is they understand and are completely immersed in computer design. They understand ALL the different widgets and what they do and continually want to tweak that design. Take yourself out of that context for a second. Or, more aptly, put yourself in the position of Diego who's developing Spaces. He's got to try to think of all the different ways that all the traditional GUI developers have added to GUI apps and try to add all of that into his. Right clicks, selections, windows, tool-tips, tabs, modal dialogs, etc. etc. It's a nightmare.
There should only be ONE way to anything in your application.
No matter how horrible a process, my Mom can memorize it and do it over and over again. She'll get confused anytime I give her a "shortcut". Instead of going to Start Menu -> Settings -> Control Panel -> Display, if I try to tel her to right click on her desktop and choose properties, she gets totally tripped out. Has she arrived in a different place than before? She took a different path to get there...
Walking my mom through the simplest of applications can sometimes be incredibly frustrating because of all the different widgets. There's sometimes not enough WORDs to describe the actions she has to take. "Mom, go to the File Menu and choose Properties. Okay, in the window that popped up. Yes, the window... see it? Okay. In that window, choose the Advanced Options tab. Click on it. Okay, now in the box on the left you'll see a tree of items to choose from, open up the folder that says 'server options'. Open the folder... double click. That's right. Is it open? Do you see stuff below it in the tree? No? Try it again. Okay. Now choose 'proxy server', do you see the right side of the window has changed? Okay, now click inside the text box that says IP...' Etc... You get the idea. It's a nightmare
But she can do all her banking and some bill payment over the web without even the slightest question from me. See what I'm saying now?
Later... rereading David's comments, I realize I actually totally agree with the OEOne guys. Wow. I'm losing my mind, I totally missed this before.