I already gave a general answer; and this is the most important.
Perhaps, some list of practical concrete answers can help? It's not so easy to list universal rules. Anyway, I'll start adding what comes to my mind, with no certain system. Will try to remember my learning of industrial design and my own findings.
- Say big "no" to MDI.
- Limit the bare minimum or avoid completely: pop-up dialogs, multiple forms. Instead, prefer: dockable controls, tabbed interface, expandable forms/windows.
- Even if multiple forms are used, they should not be fully independent; make them owned forms/windows; owned by the main form/windows, which should visually stand out. Don't allow all the windows/forms to be shown in system tray, only the main one should be shown.
- If there are many buttons and edit text box on one view — something went wrong. Get rid of them it favor of grids, lists, tree views, property grids.
- Clearly realize difference between drag-and-drop and select-and-drop; second style is much better (look at Visual Studio Tool Box); it is very hard to move mouse precisely while holding its button: a sleep of a finger can destroy the user's operation.
- Never assume monitor resolution and aspect ratio (I recently gave two answers on the topic).
- Don't use manual control layout; don't use anchors; instead, use many panels, docking and padding/margins.
- Don't use many different fonts: one is often enough, two is usually good, 2-3 is usually two many.
- Don't use a single decorator without purpose, just "for style". If you use a visual frame lines or a separator line, it means it should visually delimiter important functional groups. Every single tiny line in the view should be rigorously justified by some functional purpose.
- Readability is much more important then anything else (the user tends to fail to read important information even if readability is perfect). No text over patterned background, ever!
- Say big "no" to dashed/dotted lines. Important exclusion: selection.
- Use bitmap only for tiny glyph/icon images. For bigger images, prefer scalable vector graphics.
- Even minor flicker spoils everything. Fight it by all means. Some old Windows controls inherently flicker. It can be cured by total custom draw.
- Tab navigation should be strictly ordered; layout of the controls should visually suggest Tab ordering to avoid any confusions.
- When a window/form is shown, never leave it without a certain control which gets keyboard focus. The focused control must be the one the you expect to be operated by the user first.
- Don't leave a single focusable control without fast navigation to it using just the keyboard, without a need to use mouse.
- About Box should automatically show data found in AssemblyInfo (for .NET Assemblies), in version information resources (for native Windows applications).
...could be continued...
Good luck!
—SA