Well, you never know when you've got incomplete information (such as what version of File::Spec the OP is using). Based on the code he provided, I can't imagine why the code would change only the first part of the path to "\\". So I asked.
I'm looking at the code the OP ref'd. It's in a sub called _canon_cat that is referenced constantly throughout the module. It spends a lot of time trying to figure out if the path starts with a drive letter, a UNC, or just a root directory. Then lots of code trying to work out every variation of slashes and dots. But I don't think the problem is there.
Anyway, I've been playing with version 3.33, the current version, on Vista and I'm not seeing the OP's results. If he can live with not concatenating an empty string to the file, maybe that will take care of it.