I also remember VC will put all .obj files to one directory, so the source files with same names will override each other's .obj file, no matter which directory the source files are in.
Really? I just double checked to see if MSVC 2010 was smart enough to do this and it wasn't. It generates a "LNK4042: object specified more than once; extras ignored" unless you manually number the object files or stick them in subdirectories yourself.
Anyway, I always use unique source file name to avoid trouble.
Here also has some discussion on that issue,