Well part of this we can blame on the technical industry as a whole due to the education for software design is it always makes the user's a vanilla term. I am a big fan of keeping thing simple like Matt stated. I remember one of the best books I read was "Don't make me think" which is helpful for any techie on doing UI design.
One thing I have always done is pair my clients with a designer and a developer so that the UI can be done in a way that makes sense to my client's needs as well as making the developer understand the ease of use my client's look for. This is a very iterative, agile and interactive approach I have taken which seems to lend itself to creating the system's for my client's that are easy to use and functionally sound.