The UI for web apps is constructed differently from the UI of desktop apps. I'm interested to know what are actually the major differences in building UI between the two styles of applications in the following areas:
1.Technology used
2.Techniques used
3.Controls used
4.Screen changing behavior
A big design difference that a lot of people overlook is the structure of the window itself.
A pet peeve of mine are text links that perform frequent actions. Unless you're actually 'linking' to a separate page, do not make it look like a link. Make it a control, or an image, or something. Links are for moving in websites, buttons do things. Most people will actively ignore blue, underlined text when they want to do something, because they're used to a "submit form" button, or something similar. Links are also quite small and comparatively difficult to click for repeated actions, and for me reek of incomplete design/coding when used extensively.
A lot of web apps that I've seen that have generally failed try to duplicate a desktop app in a browser window... which is fitting a round peg into a square hole. It can be done, but they are not the same thing, and should not be treated as such under almost any circumstance.
A partial exception is when the web app duplicates the function of a desktop app (ie, Google docs). Then, the layout should still reflect a web page more than an app in most circumstances, but the controls should probably mimic a desktop application to help people transition.
Most people use programs on their desktop to do something. Most people use their browsers to see something (read, watch, etc). Of course, there's crossover, but think about most people's daily habits, and remember that other people will be using something you design; it's not just you (and your clones) out there.
And, though it's repeating others, the back button is critical. If you break it, users will want to break you. Overriding the right-click menu or behavior is also usually a bad idea, and mostly annoys users (and some will actively prevent javascript that does this because it annoys them so much (myself included)).