The issue with this approach is that for projects of any real scale and/or complexity it is very difficult to truly know the scope of work. This one issue manifests itself immediately in two ways.
The first way is that the design doesn't really address every detail of the problem. There is always some gap, black swan, or misunderstanding.
The second way is that the spec includes more than is actually required. I call this 'Kitchen Sink Syndrome,' but differentiate it from scope creep. When business users are asked what the need in a solution they frequently include everything they can think of because they don't know when they may ever get another chance to affect the product.
Turn your consultants into domain experts
An alternative to the big design up front approach is for the customer and consultancy to work iteratively, learning together and for the solution to emerge from that learning. Begin with a minimal solution to the problem, gather feedback, refine the solution, rinse and repeat.
Through such a process a product of higher value is created, waste in the form of time spent creating a detailed specification is eliminated, waste in the form of unneeded features is avoided, and frequently the return on the investment is faster.
See how GE's use of Lean Startup practices helped them to improve