OK. So we now need to start questioning assumptions.

First of all, this is the same web browser (PC), for both tests. Right ?

I was just reading up on "Content-Disposition" RFC (note the casing). Theoretically, the Response.Clear*() stuff in your code should be clearing the responses, but have you checked ?. See RFC2616, which specifically talks about this header extension. Also note that the RFC states that the filename param should be quoted.

Check/try [Rahul's blog]. He has some other less verbose methods of do stuff like this. Also, there's one person there complaining about this type of thing not working from a code-behind - obviously, there has to be some per-page property or setting  causing issues (viewstate?).

PS: I'm not a dotNET developer, so I probably shouldn't be putting my bib in, here. Although I think I'm at the bottom of my suggestions barrel.