1) are you using a reset? If not you may have default margins/paddings messing with you (since I'm not explicitly seeing them set).
2) perfect width on a layout tends to fail in many browsers, a negative margin on one of your elements can prevent 'perfect width' drop... though in your case, you've got one element with width, why does the other one need it? This is part of were I find it EASIER to design fluid, even if the overall layout is fixed.
3) raw10 hit it on the head, just don't declare padding/border same time as width... for example instead of declaring a side padding on the container, declare side MARGINS or padding on the children.
4) lose the stupid clearfix nonsense and just declare overflow and a haslayout trigger on your wrapper.