Ant’s suggestions are good ones. I wouldn’t recommend using JS to set width/height on anything, and certainly not something as central to your design as your single large BG image.
I was thinking that I could do it in CSS by default but try to make it look better using JavaScript, if it’s enabled. If I use JavaScript to firstly change the CSS so there is no background image and then create the image element but hide it until it’s fully loaded (because it will be a rather large file), as soon as it’s ready I can fade it in.
The simple way to accomplish it would be to have the background image in an IMG element within the document, use absolute positioning to make it 0 at the top, left and 100% wide and tall, then use z-index on the content of the site to position it above the image. When you scale the browser window it’ll scale because the height and width on a normal image is taken into account… and it’ll appear in the background due to the z-index placing all the content above it. It’s not the most semantic solution but it’s clean, will validate and will give you the precise look you require with absolutely no scripting (it’s the best solution that exists to-date).