I have been frustrated at the several website launches (heavy on the technology - not just static stuff) that my company has performed. I think this is primarily because customers don't understand technology or project management. So here are several launch tips and why I think they are important:
1) Do not wait until a site is perfect to launch.
This is important, because a site will never be perfect. But what's great is that a website can always be changed. If you wait until a site is perfect to launch it, then it will be forever delayed, the developers will be frustrated, the customer will be frustrated (why haven't you launched my site? Because you're being unreasonably picky!).
People often get the false impression that writing code is like writing a book. The editorial process should be fairly predictable and at the end everything should work. But this is a false analogy. If you were to liken a software launch to a book launch, and demanded the same standard of perfection, you have to remember that if your code is off just a little then the site doesn't work. That's like saying that a book must not only not contain any typographical errors, but that it must also not contain any factual or logical errors. In that case, you would need to vet each book by several practitioners, philosophers, and the like, and not release the book until the full content of the book was agreed by all that it is logically sound. As you can see, this could take a while, and there is no predictable way to tell when this process will be finished.
So what you _have_ to do, to finish at all, is decide that at a certain point below perfection, it is reasonable to launch. Most importantly, your real bugs will be found by your customers after you launch anyway. So trying to clean up something that you're going to have to rewrite later is just a waste of time.
Not only that - as you spend your time "perfecting", the client will spend their time thinking -- and coming up with new ways that the site is lacking, thereby postponing the launch almost indefinitely.
So the long and short of it is, LAUNCH. Even if small problems remain, launching is the only way to move forward. Without a strong ethic of launching, the site will sit forever in purgatory.
2) Launch only when people will be around to watch it break. That means that you should NEVER launch on Friday, and NEVER launch in the evening.
The problem is that #1 and #2 are in constant conflict. Clients usually have to be "ready" to launch. They don't get "ready" to launch until the evening. I have countless experiences with this. If they are "ready" to launch in the evening and you wait a day, then in the morning they will no longer be "ready" to launch. What's worst is if they are ready to launch thursday evening, because then, if you delay it, you wind up on friday, which you should NEVER EVER launch on. Then, if you delay until Monday, not only have you lost pretty much a whole week, but the client has 4 DAYS to think about new ways in which they don't like the website! This will take at least until Thursday to implement, at which point you are in the same boat.
How to Solve It?
I'm really not sure. The only thing I can think of is to stress to the client (a) the importance of launching, (b) that just because you launch doesn't mean that it can't change or be fixed, and (c) that sometimes you just need to get something out the door for real-world feedback, and that endless speculation does not help to improve a site, it only delays its launch. Also, I should add (d) that you should launch early in the day because you the client should expect some initial issues. I've never done a large-scale web technology launch that didn't need some first-day post-launch fixes.
Having said that, I must admit that I will launch a site in the evening and on a friday, for the simple fact that if I don't I know that the project will never really end. A project _can_ be successful if it has starting bumps. A project can _never_ be successful if it is never launched.