こんにちは。
おそらくの回答で申し訳ないのですが、
if ( i > max )で1が1000を越したらGoNext()を実行し、location.hrefでページ遷移を実行しています。
しかしsetInterval()を7ミリsecという短期間で繰り返しているため、location.hrefの処理が完了しようとしている間もwinScroll()を短期間で繰り返し実行しています。
1001の状態で繰り返されるため何回もlocation.hrefが実行されているような状態ではないでしょうか。
(ローカルだとレスポンスが早いため実行できているように見えるが、実際のインターネット上だとレスポンスがローカルよりかかるため)
以下のようにすれば良いと思います。
var timer;
var max=1000;
var i=1;
function winScroll(){
if ( i > max ) {
clearInterval ( timer );
GoNext() ;
} else {
scroll(i,0);}
i++;
}
function GoNext() {
location.href = "d003.html";
}
<body onload="timer=setInterval('winScroll()',7)">
setIntervalで設定した繰り返し処理を、条件が達した時に解除します。
これにより、1000を越した場合、繰り返し処理が停止し、その後ページ遷移が呼ばれます。
補足
同じコードが、アップロードする前の段階では、自分のPCでは IEでもFirefox でも正常に作動しております。