The biggest challenge to most devopers who write commercial applications is developing a modern looking user interface. Microsoft back in 1995 introduced dockable toolbars, and they also introduced dockable menus in 1997. These are utterly useless features. No one moves their Standard and Formatting toolbars from the top row. But for some reason we all try to put these bloaty features in our own applications.
Their are expensive ways to add in the latest and greatest methods of bloat to our applications. These include Data Dynamics's ActiveBar, Innovasys's DockStudio XP, and CodeJock's Xtreme CommandBars. There is also a good free implementation of the latest M$ Office styles at http://www.vbaccelerator.com, but that code only works for VB programs.
Many great applications today still use normal Windows Menus. Take Dreamweaver for example. It uses the typical system menus with no icons. Icons in the menus are not so bad, since they do help the user find commonly used commands more easily. The new command in the file menu is easier to find when their is a common new icon next to it. Docking menus is one of the features offered by Office. It has no use whatsoever. Not a single person in this world puts their Menu Bar on the left, right, or bottom of the screen. There is some code at http://www.vbaccelerator.com called IconMenus that works in a number of languages including VB, C++, and VB .NET. It does help in making your application easier to use, and its open source and free.
Every program uses toolbars. Office toolbars are basically treated just like the menus. C++ and VB toolbars by default are Office 95 looking, but they can be adjusted to have a flat look similar to Office 97, though VB's dont' support docking and C++'s dont' support the smooth docking of Office 97 and later. Most people don't move their toolbars around, so its not a big issue to make them dock well, but some do move drawing toolbars for example around so some way to let the user adjust where some toolbars go is a good idea.
Docking Windows are also popular, but unlike toolbars and menus, their behavior and appearance cannot be ignored. Docking windows are very important in many applications. Even Office now (Xp and 2003) has task panes which are dockable windows. Users all have a different opinion on where dockable windows should go. Docking windows are also one of the hardest user interface objects to program. There is no built in support in any of the common languages for them, and they are near-impossible to program in VB and hard in C++. There is some commercial code available, but it is of course expensive. There may be some good code for that soon on http://www.vbaccelerator.com.
Most other user interface features can be made with the built in controls of whatever language you write in. VB and C++ come with support for TreeViews, ListViews, etc. Windows XP's windows explorer does use a grouping feature that is not included in Microsoft's controls, but their is code at good ole http://www.vbaccelerator.com for this.
I hope this helps. Please ask if you have any other questions.
BTW, this method is being used in PostNow.