The short answer is that you can't. Your boss, if he / she is a programmer, will go to bat for you, and say "this won't happen; deal with it." If they aren't, you're screwed.
See, in the business world, much to its caricature, there are people who think they are business-savy. They watch 'The Apprentice' with a notepad in hand, and think that when it comes time to handling outside work, it's all about how fiercely you negotiate. Your non-programmer boss, who got his start in sales / marketing, is used to promising people stuff that others need to deliver on...as well as combing over any problems when a 'whoopsie' happens (missed deadline, etc.); he is also used to the idea of pandering to the client, and doesn't understand the intricacies of telling the client, in non-subtle, but non-insulting language, that something simply cannot happen.
So, when your client comes to negotiate with your boss, he's going to give them everything for nothing; he doesn't know this, but he does it. He's going to ask for time estimates from a programmer, where things operate in a completely different kind of world (every project is a new set of problems, first rule; ergo, all time estimates are vague and unreliable...even for 'easy' projects, because of some stuff I will touch on later); he's going to take these time estimates, and shave them down...asking the programmer, "Can't we try to get this done by Tuesday? And we can fall back to Friday if it doesn't work out." The programmer, of course, will tell him the truth (the programming / mathematical truth), which is "Sure, we can try to get it done faster." But in reality, it's not a magic button that gets pressed to make things 'go faster.' So, your boss tells the client his truth, which is that the project will possibly be done by Tuesday. The client, hearing this, thinks that it might be done by Monday, but will begin annoying your boss via phone calls as of Tuesday.
Now, let's take a moment to look closely at some of the elements around this scenario: your boss is going to charge the client for a certain amount ($2K), based off of your low wage, long hours, and another project that will be coming up a few days later for another client (it's all about volume). The actual cost of the project is $3K, but after your boss is worked down in negotiations ("We need to keep this client / build a relationship. We'll make it up to you with more work down the line / another project from them that will be worth more at some point in the future."), it'll be $2K. Bear in mind that the Tuesday deadline is actually negotiated by this client as well...so from their viewpoint, they've gotten a pretty sweet deal according to Apprentice 101: by dominating your boss, they got him to place their project at the top of the 'critical priority' pile...and they saved themselves $1K.
Your boss, believing the lies of his industry, thinks he's building a relationship with the client...he's not, since the client will bounce as soon as he tries increasing the costs anywhere near market rate, and they know that they can tweak him at will to speed things up / shave costs because he's already done it once before. Meanwhile, you, the programmer, are doing $7K worth of work, and enjoying near constant panic attacks because -> the client submits development requirement changes piecemeal, via email, telephone, SMS, Skype, and toilet paper. Your boss, of course, will come to you, and ask you if you can just do these extra tasks...that they won't take too much extra time, right? Of course not...changing the backend from SQL to NoSQL, and the frontend from ASP.NET to PHP shouldn't take any extra time at all...you're a programmer...you're second-kin to a magic elf...you can just not sleep, and reach into your magic bag of tricks, and pull off this thing by Tuesday's lunch. And skilled salesman that your boss is, he's either giving the changes away to the client for free, or taking on an absurdly low number for the additional work ("It'll pay for itself in the long run, you'll see!").
So, Monday rolls around, and the client calls to 'check-in' on the status of the website. Your boss, of course, will ask you how it's coming along...and you don't have a clue, since you're still working through their requirements (some of which are mutually exclusive), and give a half-assed answer of "I don't know." Your boss presses you, lectures you about the importance of this client and his fledgling business (eating away at the time you could be spending programming); you nod your head, in the end, to just remove yourself from his presence, so you can get back to coding. You weren't paying attention, of course, to his hijinks, where he asks you the question again, and offers an answer of "It will be ready by tomorrow, right?" You, of course, don't even remember nodding an affirmative to it.
Anyway, he calls the client, says everything is cool. Tuesday rolls around, and you're still programming. He calls the client, and says you are working on some last minute testing / bugs, and everything will be fine by Wednesday morning; the reality is that you're about halfway through coding it, and there is zero chance that it will be fully functional by tomorrow. Your boss, of course, extracts another lie from you about you having ready by this time...since you are divided between answering his pointed questions about why it isn't done already (and he wants to know, but he also wants you to spare him the technical details, since he doesn't program / understand technology), and continuing to work 'in the Zone' on the code, which his questions are impeding.
So, he's playing his game with the client, while perhaps quietly grumbling about lying programmers, etc., while you're trying to get the project done as quickly as possible, and are making some really bad design decisions to 'have something to show'; you begin hard-coding values, or putting in features that aren't fully tested / guaranteed to work, to meet with his increasing demands that it be completed right then and there. At the end of the following week, long after any 'trust' has been burned with the client, the website is done...but not without you suffering for it.
And then your boss calls you up, and asks where you are on the next project that you were supposed to have started a week ago...since it's due in two days. Wash, rinse, repeat for several years, until you decide that you can't work there anymore, and go on to a new job, at another place, for more money, but still not enough.
That's your non-programmer boss. Now, your programmer boss, possibly, will simply tell the client "it's going to cost double, take twice as long, and you will be happy with the results" and will tell them, when it comes to their additional requirements, that that counts as a new project, and will be properly negotiated once the agreed upon project / contract has been fulfilled. And they will be happy...since the design wasn't rushed, it can be easily extended in the future, with less pain, and go a lot further.