I'd love to help you with the first problem, but a browser-specific "some element appears in the wrong place when at a certain scroll position" bug is very likely going to be a PITA bug that I can't just debug quickly.
On the second issue, it looks like the blank field is called "billing_email_validator", so it's probably something that's meant to be used behind the scenes by your payment processor. I have no idea why it's showing up in IE/FF, but you should be able to make it hide with something like:
Code:
#billing_email_validator {
display: none;
}
in your CSS (either add it to a .css file or wrap it with "<style>" and "</style>" and throw it in the .htm file).
Double-check that the form still works properly after adding that though, as hiding the field might break some of your e-commerce logic. Hopefully not, but if it does you can also try changing "display: none;" to "visibility: hidden" (thought that will leave a blank space behind).
Good luck!