Ya. That's an IDE bug. The IDE looks for the first character in the sketch that is not whitespace, comment, or preprocessor directive, and that's the point where it inserts it's Wprogram.h include and function prototypes. If you do a verbose Verify and then look at the cpp file that is generated, this is what it looks like:
As you can see, the #include gets put inside the #ifdef, and thus doesn't get included by the gcc preprocessor, and thus the source file has no idea what Serial is (since it's included by WProgram.h)
// select the screen to use
// set OUTPUT_TYPE to 1 if you want to use LCD
// set OUTPUT_TYPE to 2 if you want to use LED
// set OUTPUT_TYPE to 3 if you want to use VGA
// set OUTPUT_TYPE to 4 if you want to use TV-OUT
#define OUTPUT_TYPE 1 // use 1 2 3 or 4
// user shouldn't change anything below this line
#if OUTPUT_TYPE == 1
#include <LiquidCrystal.h>
#elif OUTPUT_TYPE == 2
#include "font_7X5.h"
#include <HT1632.h>
#elif OUTPUT_TYPE == 3
#include <arduino_uvga.h>
#include <conio.h>
#elif OUTPUT_TYPE == 4
#include <TVout.h>
#include <font8x8ext.h>
#endif
But it doesn't work, all libraries are loaded nevertheless