From MSDN:
When you call Server.Transfer, the state information for all the built-in objects will be included in the transfer. This means that any variables or objects that have been assigned a value in session or application scope will be maintained. In addition, all of the current contents for the request collections will be available to the .asp file receiving the transfer.
If the path you specify in the input parameter is for an .asp file in another application, the .asp file will execute as if it were in the application that contains the Server.Transfer command. In other words, all variables and objects that have been given application scope either by other .asp files in the application or by the application's Global.asa file will be available to the called .asp file. However, the path parameter must not contain an query string or ASP returns an error.
Server.Transfer acts as an efficient replacement for Response.Redirect. Response.Redirect tells the browser to request a different page. Since a redirect forces a new page request, the browser has to make two round trips to the Web server, and the Web server has to handle an extra request. IIS 5.0 introduced a new function, Server.Transfer, which transfers execution to a different ASP page on the server. This avoids the extra round trip, resulting in better overall system performance, as well as a better user experience.
1. If you just want to let browser download a file, you just need use response.redirect "xxxx.zip". Don't need use server.transfer "xxxx.zip"
2. If you really want to use server.transfer "xxxx.zip" in NT4, you just need to install II5 in NT4. Server.transfer method relies on IIS, not relies on OS.
3. The different on response.redirect "xxxx.zip" with server.transfer "xxxx.zip" is response.redirect let user's browser to send a request for "xxxx.zip" to server, response.transfer just keep the state information of all built-in object, server to execute the other page.
If you used response.redirect "xxxx.zip", browser would prompt you to download a file. If you used server.transfer "xxxx.zip", browser would automaticly display content of the file. So, what is your point.