I think your second question may have led me in the right direction. As far as I can tell there is no dir.exe or dir.bat anywhere, and DIRCMD is not set. There seems to be a problem with cmdproxy.exe. The 'shell-file-name' variable is set to emacs-24.2/bin/cmdproxy.exe. Running cmdproxy.exe from the Windows command line drops me into a shell with the same problem, i.e., it won't list some files in C:\Windows\System32. I can't find any docs for cmdproxy.exe. I tried evaluating (setq explicit-shell-file-name "C:/Windows/System32/cmd.exe"), which switched the shell to cmd.exe instead of cmdproxy.exe, but this did not fix the problem.
Brian