Come sempre la soluzione è più semplice di quanto di creda!
Non mi era venuto in mente di passare a funzione all'interno di una variabile.
La funzione funziona 
A beneficio di tutti però ora la metto qui!
codice:
<script type="text/javascript">
//<![CDATA[
// Inserisce la data nel campo "anno"
var insAnno = function() {
var data = new Date();
this.value = data.getFullYear();
} // anno()
// Gestione degli eventi del mouse (e non solo))
function gestoreEvento(id, evento, nomeFunzione) {
if (element(id).addEventListener) { // Mozilloidi
element(id).addEventListener(evento, nomeFunzione, false);
} else if (element(id).attachEvent) { // M$
element(id).attachEvent('on' + evento, nomeFunzione);
}
} // gestoreEvento()
window.onload = function() {
element('data-odierna').innerHTML = creaData();
if(document.getElementsByTagName && document.createElement) {
Focus(); // Evidenzia il fuoco di un elemento
}
//element("anno").onfocus = function() {var data = new Date(); this.value=data.getFullYear();}
gestoreEvento('anno', 'click', insAnno);
//element("stato").onchange = alert(this.value);
} // onload()
//]]>
</script>
e quindi il codice
codice:
<form fa qualcosa >
<input type="text" id="anno" name="anno" value="" />
</form>
Ora così, facendo click sulla casella di testo vi apparirà l'anno n corso (2008).
per chi non conosce la "gracefull degradation e progressive enhancement" nel form gli elementi non hanno più i gestori di evento (onclick, onvattelapesca) ma questi sono scatenati dalla funzione di cui sopra, il sistema funziona lo stesso con quasi tutti i browser, ma per quelli molto vecchi o con i browser dei telefonini dove il javascript è spesso implementato in modo più embrionale, il form funziona comunque, solo che l'anno ce lo dovrete scrivere a mano e non basterà più solo farci click sopra