Вы думали о маскировании ввода? Я не уверен, насколько хорошо это будет соответствовать вашим потребностям, но это стоит попробовать. Вот реализация jQuery:
http://digitalbush.com/projects/masked-input-plugin/
Редактировать: Подумав об этом еще немного, я, вероятно, согласился бы с идеей календаря лайтбокса или с выпадающими меню. Преимущество выпадающих списков состоит в том, что вы можете улучшить метод ввода для пользователей, которые имеют лучшую поддержку Javascript. Например, вы можете скрыть выпадающие списки и создать фиктивный всплывающий календарь, который при использовании вставляет значения в раскрывающиеся списки.
Имейте в виду, что вы должны ВСЕГДА выполнять проверку на сервере. Если вы можете сделать это и на клиенте (или, по крайней мере, оставить ввод ограниченным), это бонусная функция для повышения удобства использования.