User Interface Design
Lesson One

#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int main()
{

	string colors[6];
	colors[0] = "black";
	colors[1] = "gray";
	colors[2] = "white";
	colors[3] = "blue";
	colors[4] = "green";
	colors[5] = "red";

	srand((unsigned)time(0));
	int color;
	color = (rand()%6);
	cout << "Always include a " << colors[color] << " screen of death.";
	return 0;
}

Cases in point: Microsoft Windows, and amazingly, the Nintendo Gamecube.

(However, when designing your system's screen of death, please try to use a reasonable color scheme. Nintendo's, shown here, is painful just to think about.... which is of course why I included a rather large image of it for your viewing pleasure.)

Linux is clearly but a work in progress, for all its kernel can do when it dies is merely blink the keyboard LEDs and output a message to the console via the panic() function. When will they ever learn? We need bright, cheery screens of hex, people!
Heck, even the TV Guide channel on my local cable TV monopoly, when I had service with them, even had a screen of death, borrowed from the great Amiga's operating system.
In keeping with their traditional "cool visual effects for everything, and we mean EVERYTHING" policy, Apple's Mac OS X actually uses alpha blending to overlay a screen that informs you in multiple languages that it's time to reboot. I've never seen it myself; the silly thing's too stable to ever show me just how it crashes. Apple's so proud of their screen of death, they keep it well hidden. Silly Apple...

Update: Sony's joined in on the BSOD fun with their new PSP handheld gaming console! A photo taken at this year's E3 shows the PSP in all its bluescreen glory!

SOFTWARE FAILURE. PRESS LEFT MOUSE BUTTON TO CONTINUE.