I used to work at a site that used build areas like that. To properly build the source, make sure that each project has added $(SolutionDir) to the include path, and then assume that all parts of the build process are rooted where the solution directory lives. Build your class and project hierarchy and build everything as if looking down from the directory where the solution lives.
Use '#include <blah.h>' include syntax instead of '#include "blah.h"'. For headers that are a level below the solution directory, add the directory hierarchy to the #include statement. For example:
#include <stdafx.h>
#include <sub1\head1.h>
#include <sub2\head2.h>
#include <oh\what\a\deep\structure\blahblah.h>
You don't want to monkey with the header include directives to make all subdirectories into a flat space. If you have 2 directories with "myclass.h" for example you won't be able to distinguish them properly (or imagine the trouble with 14 copies of stdafx.h).