A very little-know and hidden feature in WordPress MU is the ability to add a customize page that is displayed when a blog is suspended or archived. Only Site Admins can archive or suspend a blog, and you can do this in the Site Admin -> Blogs menu. Hover over the blog in question and see the extra links.
Deactivate, archive and spam are the ones you will use. Right now, there is no difference (code wise) in what happens. Each action here will result in the same page being displayed. It does, however, set a different flag in the database for each one. (I plan on filing a trac ticket for further enhancement.)
By default, when a blog is suspended or inactive, a very plain page is generated with a simple message.
This blog has been archived or suspended.
Let’s say you want to pretty this up. Maybe show it with the same look as the main blog on the site, or insert a contact form. Or even, as the first example I saw, slap Google ads on it in cases where you’re suspending spam blogs. 😉
The way to do this is surprisingly simple. All you have to do is place a file with your customizations in the wp-content folder.
blog-deleted.php will show if a user has elected to delete their blog. Remember, if a user deletes their blog, it is only marked as deleted in the backend. If a site admin deletes a blog, it is really really gone. This gives the user a chance at recovery.
blog-suspended.php will show if a blog has been deactivated in any way (archived, deactivated, or spam).
I spent probably too much time trying to figure out how to pull in exisiting blog headers for page customization here. Just do a simple HTML page with whatever you want. I wanted mine to look like my main blog theme, so I just copied the HTML from the source of the front page, deleting items I didn’t want.
Many, many thanks to Andy Bailey from Comment Luv who did the hard work of actually figuring this out, and reminding me to whip up the tutorial.