This is just because of the way the wrapper (download.php) is working. By using headers to rewrite the location, it should work correctly. Something like this would work:
header("Location: http://www.google.com/");
The only real problem is that you have to know the exact (static) location. However, since the filename is sent to the wrapper any way, all you need to know is the server and directory. Assuming you're not on a mirror, you could easily leave the http://www.phpbuilder.com/ in, and all would work.
In contrast, if one were to use this on a mirror, it would not act correctly. One would have to use something similar to this, instead:
header("Location: http://".$SERVER['HTTP_HOST'].dirname($SERVER['PHP_SELF']).$filename);
This all works correctly on Apache.