Having played with this further, it appears that accessing files on the host OS from the guest OS does all sorts of strange things. Stuff like, I delete a file, ls
tells me the file is gone, but when I try to write to that file, it says it can't because it already exists. Unmount and remount the filesystem and the problem goes away.
In short, I think this is probably nothing to do with Darcs at all, and is just the VMware drives being strange / buggy.