to align this I would separate the form and the h1, floating the h1 left, and the form right.
then inside the form, wrap the user and password inputs inside their labels (instead of an extra div) then these labels can be made into inline-blocks so they sit side by side with the submit button. Also once they are inline-blocks the inputs themselves can be made into blocks which put them below the actual label text though being inside the label element they auto associate with the label.
Then give each input it's own class, or ID is better as form element names should have the same ID too the ID and the name attributes sort of serve the same purpose in functional forms.
The submit button should really come outside the password div too, anyway in my case shown the labels take the place of your divs for the purpose of grouping the fields it doesn't really matter if you want to use divs, but if you do it's those wrapper divs that would need to be inline blocks
the HTML for how I would approach this lands up looking something like this:
<div id="header">
<h1>Logo</h1>
<form id="search">
<label>Email <input type="text" name="s-user" id="s-user"></label>
<label>Password<input type="text" name="s-pass" id="s-pass"></label>
<input type="submit" class="submit" value="Submit">
</form>
</div>
and some CSS which hopefully reflects what I said above:
html, body {margin: 0; padding: 0;}
#header {
border-top:7px solid #505559;
margin:0 auto;
width:970px;
background: #eee;
height: 45px;
padding: 20px 0;
font: 12px arial, sans-serif;
}
#header h1 {
margin-left: 30px;
float: left;
width: 197px;
height: 45px;
background: url(http://dummyimage.com/197x45/fe63a5/000&text=LOGOPIC) no-repeat 0 0;
text-indent: -9999px;
}
#header form {
float: right;
margin-right: 30px;
height: 40px;
padding-top: 8px;
}
#header form label {
display: inline-block;
margin: 0 2px;
}
#header form input {}
#header form #s-user,
#header form #s-pass {
display: block;
width: 250px;
border: 1px solid #eee;
padding: 3px 0 3px 0;
margin-bottom: -1px;
}
#header form .submit {
height: 23px;
vertical-align: bottom;
background: #d743ae;
color: #fff;
border: 1px solid #ddd;
-moz-border-radius: 5px;
border-radius: 5px;
}
the submit button can use vertical-align:bottom becasue it's being aligned to the same line as the label inline-blocks, however the biggest problem is the "pixel perfect" alignment of the submit button as different browsers render input buttons differently so it's fairly difficult to get it to be the exact same size, however I'm one of those that don't mind a pixel difference here or there