Let me approach this from a different position -- that of someone who works for a large IT company.
I have an engineer. We agreed that it would take X numbers of hours to install a new webserver system on the client's environments for their web development team to use.
Now that we get that done, he asks, "Okay, now I have to migrate their data source systems from X to Y, in order to work with the new webservers they asked for."
That wasn't in the initial project requirements (I DON'T KNOW WHY). I ask him how much work that's going to take.
"Oh, 60-80 hours". At $120/hr.
So now I have to go back to the client and say "Ok, we have your new webservers ready. And if you want them to work, you need to cough up another 10 grand and it's going to take two more weeks."
Is that unethical?
Your project requirements appear to be written by a non-IT based salesman who didn't ask the engineers about specifics. Tell the client that a) an unfortunate miscalculation occurred with the project requirements and they actually went over budget by two weeks and $10k, and b) have the guy who initially wrote up the project requirements talk to the customer so he gets shit on by them and learns a lesson.
Unfortunately, again using my previous experience, this doesn't mean anything either. Our sysadmin in conjunction with our project manager sent out specs 6 months ahead of deployment. Went to a team of 8, including the sysadmin on their side.
6 months passes, go live happens, and they're all going "You never told us you needed that stuff?!?!?!" while referencing the network diagram they take as gospel,
which had our requirement stated right there on the fucking document.Even when you bring in engineers and specialists on your side, there is no guarantee that the engineers and specialists on their side a) thoroughly read b) thoroughly implement or c) aren't busy doing half a dozen other things that causes them to get distracted.
And I'm not throwing all the stones at these guys. We can end up with the same problem on our end, where there's 60 things that need to be done, 50 of them make it to the design doc and only 40 of them get done within the allotted deadline.