Originally Posted by
jwenting
Another excellent argument is that they're compiler specific and can cause confusion.
Using Borland C++ you don't have any stdafx.h for example, and having it as an #include will cause trouble.
gcc is similar.
MSVC requires it to be included as the first thing in every single source, even if that source doesn't need any #includes at all.
Strangely, if you create a project to not use precompiled headers in MSVC 2008, it still creates stdafx.h and stdafx.cpp, it just doesn't complain if you delete them (and all references to them) from the project.