It al boils down to communication, right?
Ok, so why doesn't it happen most of the times? Because it is done wrong. And has A LOT of assumptions being taken instead of facts that result from true interaction with your customers. They know what they want. Most of the times they just don't know how to explain it to you. That is my opinion.
So, either find a way of having a common language to work with or the abyss will keep standing right there wayting for you to fall.