"you need a good project manager"
Also one that has the clout and the balls to say NO and stick to his guns.
I've said it before in these very forums, the best project I have ever worked on was one where the PM would send the meeting agenda beforehand, with the points that were to be discussed. Every time, the approved specifications for the project were included.
At the meetings, anything that was outside the scope of the meeting was pushed to the end of the discussion. Any change request concerning functionality that was not in the specs was penciled in for V1.1 - aka A Later Date. Anything else was seriously questioned before being included and the specs updated.
The fact that said PM was also head of IT made saying NO a lot easier.
The project was delivered on scope, on budget and on time.
Best project of my life.