File this under "there must be a way to do this in the Win32 API, but I couldn't
find it".
I whipped this up one night last year, but never got around to putting it on the
website. It's a message box with custom buttons. Let's hope something like this
makes it into the framework some year.

You can have as many buttons as you'd like, and button width is determined by the
length of each button's text. You can override this by setting AutoSizeButtons to
false and ButtonWidth to whatever width you'd like.

And here's how you use it:

Download Source