The solution to this one was tricky: it turns out that xcopy is parsing the forward slashes in the path to its own binary. This works fine:
C:\Temp\foo>c:\windows\system32\xcopy.exe /f /r /i /d /y * ..\bar\ C:\Temp\foo\blah -> C:\Temp\bar\blah 1 File(s) copied
You can also run into this if you have your PATH
defined using forward slashes instead of backslashes.