non vedo come fa Yahoo.
Pero' penso che tu possa fare che all'onblur su un input verifichi se in campo e' vuoto, ne qual caso lo riempi col valore di default.
Mentre all'onclick guardi il contenuto e - se e' uguale al valore di default - svuoti il campo
codice:
<script> // da mettere nell'head
var defaultName="nome"
</script>
codice:
<input type ="text" onblur="if(this.value=='') this.value=defaultName" onclick="if(this.value==defaultName) this.value=''" name="nome">
Cosi' funziona. Devi sperare che nessuno si chiami sig. Nome Cognome ;-)
Comunque ho visto che pure Yahoo ha questo - chiamiamolo - problema 
Qualche piccola modifica per sistemare pure lo stile... ma il concetto e' quello