There are a couple of issues, the first is that the error coloring is shown as surrounding the input element element. So either you need to use the error div to contain the input element or just change the color of the container for the form element. I'm voting for changing the color of the container.
Second, you want the div.error to be clear on the left and right (assuming you're just changing the color of the container for the form element), so just add:
div.error {
clear: both;
}
This assumes of course that for some reason you've floated it to the left. In any case, see a simple example of what one way to lay it out