Nope, nothing to do with permissions🙂 Apache generates some custom variables, like $DOCUMENT_ROOT, from the $HTTP_SERVER_VARS array. Also any variable you accessed using Apache can be called from this array on IIS. For example, $HTTP_SERVER_VARS["DOCUMENT_ROOT"] should do the trick.
One other bloody annoying thing you're going to notice about IIS is that it reports paths using the Win32 backslash instead of the Unix forward-slash. This is a real pain in the arse if you develop on Win32 locally but deploy on *Nix, or if you need to use the DOCUMENT_ROOT in filesystem calculations. A quick work about is:
if ($HTTP_ENV_VARS["OS"] == "Windows_NT") {
$doc_root = ereg_replace("\\", "/", $HTTP_SERVER_VARS["DOCUMENT_ROOT"]);
else
$doc_root = $HTTP_SERVER_VARS["DOCUMENT_ROOT"];
Now use $doc_root instead of $HTTP_SERVER_VARS["DOCUMENT_ROOT"] in your scripts.
-geoff