Когда HTML5 будет поддерживаться многими браузерами, это очень просто:
<input type="text" placeholder="default-value" />
До тех пор, пока я не использовал бы фоновое изображение и не позволил бы ему исчезнуть, пользователь фокусирует ввод, иначе пользователь можетотправить значение по умолчанию, и вы должны отфильтровать его на стороне сервера:
<input type="text" name="fieldname" id="fieldname" style="background-image: url("default-value.png"); background-repeat: no-repeat;" />
И JavaScript, чтобы удалить его по клику (использует прототип платформы):
$('fieldname').observe('click', function() {
// if already cleared, do nothing
if(this._cleared) return;
this.setStyle({backgroundImage: ''});
this._cleared = true
});