certo che esiste, e' stato anche alla base di un concorso

mettiamo che tu abbia una funzione addEvent
codice:
function addEvent(obj,ev,fn){
	if(obj.addEventListener) {
		// metodo w3c
		obj.addEventListener(ev, fn, false);
	} else if(obj.attachEvent) {
		// metodo IE
		obj.attachEvent('on'+ev, fn);
	} else {
		// se i suddetti metodi non sono applicabili
		// se esiste gia' una funzione richiamata da quel gestore evento
		if(typeof(obj['on'+ev])=='function'){
			// salvo in variabile la funzione gia' associata al gestore
			var f=obj['on'+ev];
			// setto per quel gestore una nuova funzione 
			// che comprende la vecchia e la nuova
			obj['on'+ev]=function(){if(f)f();fn()}
		}
		// altrimenti setto la funzione per il gestore
		else obj['on'+ev]=fn;
	}
}
puoi settare un onload semplicemente cosi'
codice:
addEvent(window,'load',nomeFunzione);
e accodare l' esecuzione di un altra funzione con
codice:
addEvent(window,'load',nomeAltraFunzione);
se dovesse servire passare parametri a funzione() ti servi di una funzione generica
codice:
addEvent(window,'load',function(){funzione('pippo')});
a te interessa usarla per l' onload, ma potresti riutilizzarla per settare qualsiasi tipo di gestore evento, aggiungendo la funzione da eseguire a qualsiasi eventuale funzione gia' settata in altra maniera (gestori evento nel markup, via javascript "tradizionale", addEvent stesso)
codice:
addEvent(document,'mousemove',funzioneAlMovimentoMouse);
addEvent(document.getElementById('id_link'),'click',function(){allerta('ciao')});
personalmente uso questo approccio tenendo a mente tutte le considerazioni fatte da ppk, che valgono ben una lettura se hai voglia di approfondire

ciao