It is the job of the analyst to properly define the problem to be solved, among other things. Perhaps there is simply not enough care being taken with problem definition before program design starts...