Designing user interfaces is something that should not be taken lightly, as it is far from trivial to make beautiful, intuitive applications. Take the redesigned Ribbon interface introduced in Office 2007, for example - Microsoft spent tons of time and money on research to get it right - they didn't just go with some random idea that seemed good - they made damn sure it was a good idea:
"So, one of the biggest reasons that we decided to do the new user interface for Office 12 is simply that, for the first time, we have the data we need to make intelligent decisions. Anything we would have done in the past would have been based more on guesswork and bias than on reality. Data is just one input to the design process, of course, but there's something extraordinarily empowering about knowing which commands people use often and which they don't. And knowing which commands are used in sequence with which other commands. And which commands are used 7x more with the keyboard than with the mouse. And how big people's screens are... and how much of the time they use Excel maximized... and how many documents they use at once... and which commands literally are never used... and which are used much more frequently by East Asian users... and on and on..." (Why the UI, part 6 by Jensen Harris)
Obviously, most of us aren't in a position to do the same - in fact where I work we don't even have any designers; all user interfaces are made by us developers. What we can do, however, is learn from the great applications around us and take inspiration from people who have threaded the path before us.
An Apple A Day...
Say one thing for Apple, say that they know how to design user interfaces. And to help developers on their platform to make applications that benefit from this, they've got a document up on their website titled Apple Human Interface Guidelines. Some of it is very OSX-specific, but there are chapters that are worth a read - especially the Human Interface Design Principles chapter, which talks about things like reflecting the users mental model...
"The user already has a mental model that describes the task your software is enabling. This model arises from a combination of real-world experiences, experience with other software, and with computers in general. (...) Before you design your application’s user interface, try to discover your users’ mental model of the task your application helps them perform. Be aware of the model’s inherent metaphors, which represent conceptual components of the task."
...being forgiving...
"Encourage people to explore your application by building in forgiveness—that is, making most actions easily reversible. People need to feel that they can try things without damaging the system or jeopardizing their data. Create safety nets, such as the Undo and Revert to Saved commands, so that people will feel comfortable learning and using your product."
...the importance of modelessness...
"As much as possible, allow users to do whatever they want at all times. Avoid using modes that lock them into one operation and prevent them from working on anything else until that operation is completed."
...and much more. If you find yourself developing user interfaces, on any platform, this is sound advice to take to heart and apply - your users will love you for it!