I had a similar problem, where a script was being ignored completely by the game. I traced it to the "if (blah blah) , return, endif" line (I was using that to return on menumode == 1). I fixed this problem by deleting the object in CS, then making a new one after reloading the CS. I then hand-typed the line (as opposed to ctrl-c, ctrl-v like I usually do). After that I had no further problems.
So if I was you, I would try first ctrl-c all of your script text and paste into notepad for storage. Then start a new script that plays a sound (or does something else that is very obvious in-game) on activate, without the do once line. Go into the game and try it out, if you hear the machine-gun sound repeat, you are in business. Now just go back into CS and hand-type your do-once line - I think what is happening in your case, like with mine, is the game is simply returning in all cases for some strange reason. Good luck