Looks like .firstname needs float:left instead of float:right, clear:both removed from #midright1 and used instead in a div between table rows, .emailtext needs float:left, and both type="text" input fields float:right. That is, if I understand what you are trying to accomplish.
Something like this might work.
Code:
<!-- inline CSS can be transferred to style sheet -->
<div style="width:205px;">
<div style="float:left; padding-top:3px;">Name:</div>
<div style="float:right;"><input type="text" style="width:150px;"></div>
<div style="clear:both; height:4px;"></div>
<div style="float:left; padding-top:3px;">Email:</div>
<div style="float:right;"><input type="text" style="width:150px;"></div>
<div style="clear:both;"></div>
<input type="submit" style="margin-top:4px;">
</div>
Will