There are a lot of plugins dedicated to implementing HTML5's placeholder attribute in older browsers. This is the one we're using.
While it does't use the placeholder attribute like some of the others options, it does (after our tweaks) preserve the text on focus - focusing onto an input field doesn't erase its contents.
We have one annoyance with it though - when you hit TAB and move into an input field with the default (/ empty) text, the default text first gets selected, until we fix this and position the caret at position 0 ourselves, causing a noticable flickering effect.
To reproduce, just check out the fiddle I linked to above (here it is again). Is there an easy solution to this problem (needs to work on IE9+/Firefox/Chrome)?