Most dialogs have buttons on the right or on the bottom. That's because the content is more important (especially initially) than the actions you can take on them. Plus it has been a convention since time immemorial.
With the advent of the new task dialogs in windows, the convention is changing somewhat, though data-entry dialogs still follow this "buttons on the right and/or bottom" mantra.
I think the idea extends beyond dialogs. For non-dialog forms, the consensus is that navigation should be on the left. Desktop and web apps are very similar in where the place navigation and "other action" buttons. Navigation is on the left. You can see this for desktop apps in for example MS Outlook and other general purpose apps where the main menu is essentially replicated on the left to allow access to the main areas of the application. This is very analogous to site navigation or the navigation to specific areas of a web app.
But that doesn't mean all buttons or actionable (clickable) items should be on the left. Actions and navigation are similar but not the same. Navigation takes you from one page/form to another page or form. Actions may open other pages (web)/forms (desktop), but they may also just do something on the current page/form. And even when an action opens another page/form, that usually is a page/form with (more) detailed information on whatever is selected on the current page/form.
Interestingly, desktop and web apps are again very similar in where they place buttons/links for non-navigation actions: in the immediate vicinity of the content. For example a list will usually have action buttons at top and bottom (see GMail's inbox for an example). Single item actions in web apps usually are links, whereas in desktop's they are in context menu's and the default action can be activated by double-clicking. And the buttons or links for actions on a multi-items selection can again be found at top and bottom (or on the right for some desktop apps). The only difference being that multi-selection is desktop's is "standard" while you need a separate checkbox column for this in web apps.
All in all, I think the general idea boils down to:
- Navigation actions are actions that take a user to a different content area.
- Content actions are actions that may take a user to a different page / form but do not take him/her out of the content area.
- Navigation actions are on the left, where everybody now expects them to be.
- Content actions are as close to the content as possible.
Note: On web sites you will often find secondary navigation items on the right. Blogs often have their category lists, tag clouds, etc. over there. Secondary navigation is much less common in desktop apps, as they usually put this stuff in sub(sub(sub))menu's of the main menu.
Note: Content actions are as close to the content as possible not only because it makes sense, but also to shorten the mouse-travel distance. It is pretty frustrating having to travel to the other end of the screen just to click a button when your focus is on the content on this side of the screen...
Note: web sites often duplicate content action buttons at the top and bottom of lists while desktop apps don't. This is probably because desktop apps usually have a fixed size window and use scrollbars to move through lengthy content and web apps usually have all the content in a single page and need to cater for the user scrolling down using the browser's scrollbar. Not nice if you then have to travel all the way back up (or down for that matter) because your button scrolled out of view. Another option would of course be to limit the length of the list and allow pagination.