From a paper I read recently: 

Based on the observation that users did not use a number of support functions, such as the medical notes and the consultation review interface, future trials will include a short tutorial.

The authors are talking about a virtual patient system, but this probably applies to many applications. If users didn't use certain functions, in my book there can be two reasons:

  1. The features are not well designed, and users don't know how to access them or,
  2. They don't actually need the features.

Either way, the right solution is probably not to bombard users with tutorials, but rather to do some proper user tests and redesign or eliminate useless features (or even better, not bother to build them at all. Duh. Life is too short for useless code).

I'd say that's how bad software is built. What's your opinion?