http://daringfireball.net has an interesting post on usability (and a follow up) on usability. I agree this problem is hard. When you are immersed in something and understand its details inside and out, it's hard to design it in a way that's approachable by someone not familiar with this work. At Microsoft, we take this problem very seriously and have usability engineers who's sole job is to test the usabililty of our products with a very scientific approach. In fact, we even test our APIs with users. It's amazing how much you learn while watching someone use your product for the first time. Many times, your assumptions on how they will react is wrong. In many cases, we've been able to eliminate common problems with very simple changes.

As one example, in one test of the Mac MSN client, we found that users were double-clicking the reply button in the toolbar when replying to messages. Since the toolbar only needs a single click, this would open the reply on the first click. With the default positioning of the reply message window, their second click would go into the delete button in the toolbar of that window, closing the reply. This was frustrating to users, but the fix was simple. We just swallow a second click on toolbars. Simple terminology changes can also make big differences sometimes.