I had a similar issue, and in the end I simply created my own alert box like this which consists of a group box , a label and two script buttons. This Group box was then hidden.
The two different buttons would then invoke different scripts depending on which one is pressed. So if Proceed was selected, it would contain all the relevant scripting to continue the process. If cancel was selected, then the process would stop.
The first step of each individual script on these buttons would Hide the Group box again.
So in my previous script, where I got to the point I wanted the the alert to appear I would simply have the last action in the script unhide the Hidden Control which would be this group box.
I agree this is not as simple as the JavaScript option suggested by Tamas, but it does work.
Kind regards,
Ian