"The best approach is to use relative paths in all cases, then the problem of portability when using Unix instead of Windows will not affect you that hard"
This is only true if you are accessing files that will never move relative to the script.
If you move the script to another directory leve, all your relative links are broken, but all your full paths remain valid.
A solution, define the base part of the full path at the top of your script, and use relative paths based on that. Then you have one central place where you can define the paths (so you don't have to go through the entire script) and you still have the "ease" of typing relative paths.
BTW my 4.0.6 finds all the files in my documents with normal spaces in the path.
My guess is the file really does not exists, some directory has a different name than what you entered. Use file_exists to see if the paths exist, start with only 'd:\Documents and settings" and add subdirs untill it says 'does not exist'.
if (file_exists("D:\Documents and Settings"))
{
echo 'exists';
}
else
{
echo 'does not exist';
}
exit;