For those who experience similar situations, my recommendation is to move from being reactive to being proactive. Is it possible to be proactive about these issues? Well, yes and no. The discussion up to this point has been on identifying and managing these evils after the fact. Consulting houses and other service organizations will probably always be compelled to play a reactive rather than a proactive role.
However, organizations that drive internal projects, either because they are managed as project companies, or because they work as strong matrix companies, are in a better position to adopt proactive measures. Being proactive means better training for business analysts, closer attention to the inclusion of all stakeholders at design stage, and the inclusion of assumptions sets at the feasibility level.