Open Question: Windows processes should support %ENV as part of their POSIX support. What is be the corresponding secure Windows-NON-CYGWIN-idiom for the Unix shell's variable interpolation w/o word splitting, i.e. "$f"?
Windows processes do have an environment block, but it is nothing to do with POSIX support. Do not confuse the operating system with the shell - Korn shell 93, for example (via uwin) runs on Windows. It is not that difficult to write a shell which runs on UNIX and Windows (I have done it, so it can't be hard).
The Microsoft cmd.exe shell only uses double-quotes (as does awk) but does not use the $ operator to get a variable value, as is common in some shells, but it uses the % delimiter, as in %PATH%. Coming from a UNIX background I think it is safe to say that cmd.exe does not support interpolation as we know it. By the way, environment variables in Windows are not case-sensitive, so %PATH% is the same as %path% (unlike the c-shell). For example:
C:\>set fred=42
C:\>perl -e "print \"$ENV{FRED}\n\""
42
Cygwin (and uwin) makes Windows environment variables UPPERCASE, and is case-sensitive.