That's exactly what I'm saing.. If you alter the default.aspx page and then update the installation, you'll have to modify again default.aspx page ("acceptable" in a private environment, but not for a "release module"). In addition, by doing this you'll add the reference to ALL the sites and ALL pages in that installation, instead of just when you need it.
Obvusly this was just a "quick" possible solution (and a way to see if other problems will bother you once reference is added), far from pretending to be a "good" solution
Have you tried adding reference on Page.Init? it' just the next step in the page lifecycle, and maybe it'll work. for example, looking at the msdn refernce for the asp.net page life cycle, I just noticed that I usally perform some actions during page.init, that "technically" should be performed during PreInit, but everything is working fine. If you haven't already, give it a try..
In any case, I didn't say that you can't use SriptControl with a dotnetnuke (as I said, I have no specific knowledge about MS ScriptControl), I just noticed that the PreInit event is not overridable from PortalModuleBase, and found that post in the forums with the explanation.
However, when programming It is very likely to be "always" another way to do what you need, even if it may or not be an easy thing to do.