Your problem lies in the 3rd line of your question
Let's see...
Q - If you're running the DLL on your machine, which is running PWS, where does the messagebox appear?
A - On your machine. Why? Because your machine is acting as the server AND the client so you can't tell the difference.
Q - If you're running the DLL on your server and viewing the ASP page on a different machine (your client), where does the messagebox appear?
A - On the SERVER!!!! Why because that's where the DLL is running!!! You can't MsgBox from Active SERVER pages. The message box pops up on the SERVER and your DLL remains frozen until someone clicks OK on the SERVER!!!!