I think that the goal in product design should not be to design a product, but to design a tool. A tool should get a job done as quickly and as easily as possible. However, a tool should also be unobtrusive. It should not ever get in the way. Inherently, this makes the users the best designers, and thus all designers should be users.
When using a program, I often think of several (often insanely simple) ways which it could be improved. Sometimes I even think that such an improvement could actually simplify the code as opposed to complexify it (though, admittedly, this is not always the case). I always wonder why the programmers of the program did not think of the feature which I have thought of.
Part of it, I suppose, may stem from who is making the decisions. Often, in my opinion, the best improvements which can be made to a product are in fact the most simple improvements. However, these features may not be easy to advertise. And that, perhaps, is the root of the problem.
I think too many product designs focus around the big features of a product. It is the little things that matter. It is, however, possible to have both at the same time. Apple's OS X Panther seemed like a nice operating system. Then I upgraded to Tiger. I was, in fact, a bit underwhelmed - the luster of the new big features quickly wore off, and I didn't really see an important difference between Tiger and Panther.
Then, one day, I was confronted with a Panther machine. Using it, I couldn't help but think, this OS sucks! Tiger seemed, suddenly, so much better, but I could not put my finger on what exactly was different. There were just tons of little tiny usability improvements, and those were the best features in Tiger.
The point of this? The difference between a product and a tool is, in my opinion, the design method. Was the product designed to be used, or was it designed to be advertised? Was usability the key goal?
A product designed to be advertised will likely fail. A product designed for usability will advertise itself.