When developing a desktop application that has several groups of equally important data and operations, how do you tackle the user interface design?
Most of the web-based apps I've developed have a simple home page with links to each service the app offers. Most of those pages contain lists of items in a database which you can drill down or perform operations on by following "edit" "update" or "delete" type links. Think of the vBulletin user control panel. Menu down the left side, data groups and operations on the right.
I'm now looking into desktop application development and am curious about the most common design idioms. For the above example, I imagine some kind of tabbed interface (like Eclipse with the Java perspective, Subversion perspective and so on), but if the functionality groups are used with roughly equal frequency, the user will be clicking around between the tabs very often. I also wonder whether I want to let the user launch n tabs of the same type, or preload each tab for each functionality group and only allow the user to switch between them.
I suppose it could also be implemented using separate windows for each group of functionality. That leaves the problem of having an out-of-place "home window" which is just a collection of buttons to fire off those windows.
After being a desktop application user for so many years, I'm stumped when it comes to actually building an interface that makes sense and doesn't stand out. I looked to microsoft office, but most of those apps deal with one piece of data (eg. a word document) with many operations, rather than many equally important pieces of data each with unique functionality.
What design principles / idioms do you follow for desktop application development in this situation?