opps, I skimmed to fast through your message. Disregard the first two checks as you've shown that will work.
My guess is that the "callback" IP Address 127.0.0.1 might not work in this case, http://localhost/file.php should though.
Otherwise, maybe it is some kind of conflict because windows uses backslashes for directories and the rest of the world uses forward slashes... though I think Apache is smart enough to get around that.
All in all, I would stick with what you had:
include ('top.php');
If it ain't broke, don't fix it 🙂 There is no reason to use an absolute link...
Also note that "URL fopen wrappers" must be enable in php.ini (it is by default so it shouldn't be a problem...) Absolute links work quite differently in includes(); you can check out the documentation here:
http://www.php.net/manual/en/function.include.php