Thanks Igor but that link only explains 3/4 of the problem
AFAICT there are 4 locations where the compiler (or linker) searches in:-
1) The same directory as the source file.
2) Any folders saved in the project's settings (or more correctly, in the current target's settings).
3) Any folders stipulated in the INCLUDE (or LIBPATH) environment var.
4) Any of Visual Studio's 'global' folders (Tools->Options->Projects and Solutions->VC++ Directories).
After reading that article I understand the ordering between the first three - but I still don't know where item 4 fits into the equation. It's not vitally important... I'm just curious.
"A problem well stated is a problem half solved.” - Charles F. Kettering
Seems like something you could figure out. Create a header file that compiles and one that doesn't. By moving them around to different directories and seeing which one the compiler chooses, you should be able to get an idea of the order it's looking in the directories.