Of course, they want to return different codes for search engines and for users. We figured we wanted to return the same thing for users and search engines; after all "Service Unavailable" is the actual status, regardless of who's visiting. The only exception should be the blog maintainer.
Here's the .htaccess we worked out:
And here's the 503.php file I like:
We use a PHP file so that we can set the header, and so we can include a retry period for search engines.
If you're one of the few whose server allows [R=503] in the .htaccess, there's an even easier way outlined in the article details.