buenas....
entiendo que es una encrucijada porque a dia de hoy no todos los navegadores tienen soporte completo para html5. la solucion es detectar el soporte del navegador para una caracteristica en particular. en tu caso, podrias detectar si existe la propiedad
placeholder en un elemento <input>. de existir, no aplicas las funciones a los elementos, y viceversa. en
diveintohtml5.org tienes una lista de diferentes lineas para detectar por caracteristicas.