As a general rule, whenever something displays well in some browsers and not in others, there'sa fault in the code -- either the php or the CSS. When I checked the syntax of your example page I found 54 errors and 3 warnings. Many of the errors are not critical but some may be. In particular there are DIVs trapped inside an HR, because the HR wasn't properly closed. On a complex page, those sorts of things can add up to a level of confusion for some browsers.
I also checked that product title (using Firebug in Firefox -- you must use this or something similar when developing a site!). I can see the DIV for the product name starts over at the left edge of the image, but on a 'good' browser something is pushing the product name over and leaving empty space in the DIV where the image is. Ordinarily this would be defined in your stylesheet, but Firebug didn't show any such definition, so I suspect this is just the image itself pushing the name over, and on some browsers it's not being pushed. So specify a left padding for the name, by adding this to the bottom of your main stylesheet...
#productName {
padding-left: 155px;
}
Adjust as needed.
Rob