Form error messages appearing in the middle of the form
This is actually due to the way the checkout module has been written (and is in line with recommended best practices for checkout form submission). The idea is to place the actual error message as close to the form element that generated it to reduce confusion in correcting errors on the form. There is no simple way to undo this behavior in the checkout module.

However, the fact that these are appearing halfway down the page is a good thing - what you really need to do is figure out what it is about your CSS that's causing the messages to float weirdly relative to your form elements.