Originally Posted by MarkBondi
cool. why is that hacky?
Well, if it were me, I would move the login and social icons into the same container with the search form (not within the form itself, of course, but into the parent div) and then float the form and the cart/social div in opposite directions and apply margins/padding as appropriate. I generally find that mode of operation to be more durable and forgiving of browser and OS rendering differences. For example, the 182px width I provided for the #icons div can break the social icons layout if another user's browser renders the login/cart text even a single pixel wider than my browser did when I tweaked the page. You can adjust for that to give yourself some insurance but I still find unpositioned layout to be more flexible for this.
I also have a personal distaste for using absolute positioning without pretty solid reason to do so and this probably further colors my perception of the method as "hacky" since this could be done just as easily without the absolute positioning and negative "top" value. In fact, if I were you, I would get away from the absolute positioning for #navigation also. You really don't need it for the layout you have there.
But, since this is a Drupal installation it can get hairy making HTML changes without potentially compromising the usability of some modules and such so I assume tweaking the theme is probably more work than you're interested in. It's easier to "hack" the CSS and just make it fit.
So, since I broke a few of my own guidelines in order to avoid any PHP/HTML adjustment and CSS rewrites I consider my approach to be "hacky." There is nothing technically wrong with this approach but you will need to know and respect the limitations of absolute positioning in order to effectively manage the layout cross-browser and cross-platform.