Internet Explorer has this annoying bug that breaks submit-on-enter-key if the submit button is not visible during page load. Setting it to display:none and using position:absolute;left:-5000px both cause this bug to appear.
Here's one solution (assumes all submit buttons have a class="submit"):
<!--[if IE]> <style type="text/css"> .submit { height:0; width:0; overflow:hidden; } </style> <![endif]-->
This doesn't work in Firefox, so make sure you sniff for IE when applying this technique.