In any other type of product, if it is hard to use, people will look for something better. Whether it is a car, dishwasher, lawnmower or anything else, you would not put up with struggling to figure out how to use it when you can buy something else that is simpler and allows you to get to work, wash your dishes or mow your lawn more effectively.
In light of those facts, you would expect that anyone building a product, whether a physical product or a piece of software, would place ease-of-use at the top of the priority list. However, in may cases that isn't true.
It goes back to the early history of computers when the people using them were the people that created them and they understood and appreciated how difficult they were to program to do anything. So when presented with something complicated, they thought "wow... this must have been really complicated to develop". They were ok with that. But now, computers and software are "magic" to the majority of people. They don't care how complicated they are to develop and don't appreciate the effort (and they are right not to). But people creating software sometimes think that users will understand how difficult a feature is and cut them some slack if the interface isn't as good as it could be. It just isn't true anymore.
I, and other designers I'm sure, would be interested to here success stories from those designers who have overcome the "lets just make it work... we'll make it easier to use later if we have time" mentality. Feel free to comment.