Couple quick things:
1) You were absolutely correct to put your code in customInit() as you originally did - commenters are correct that the init code is only run on startup, but in this case what you're doing is modifying the static global protoEvt, which is the template on which all subsequent Events are based. If you do run through this in the debugger, then what you should see is that immediately after the 'curEvt = new Event(instance.protoEvt)' line in main.js (which should be at the bottom of your assembled Collector), your 'curEvt' global variable should have that CustomerVar21 set in it. Further, when you get to the Event.send() bit, the Event you are constructing should have that pre-set. You can of course look at the protoEvt object in the debugger as well to make sure that it actually was modified by your customInit().
2) I saw that you actually did call out that you set Custom execution mode, but you did not mention AFAIK that you did the 'Add Auxiliary File' step to upload your edited custom.js into the Collector. Can we assume you did that?
BTW, just a tip on the debugger: read through: http://www.novell.com/developer/plug...tor_debug.html
Note the bit about scrolling to the bottom of your file to find the main loop - this is where all the action happens, so put your breakpoints there (typically).