Your problem is the widths you are using. You have content set at 70%, it contains an header image that is 662 px wide. Your house images are 640 px wide that they are not being adjusted in size under IE7. What happens if someone has bad sight and has their monitor set at 800 px wide. 70% of 800 is only 560px and this does not account for the overhead required by the browser. So the header image i s not going to be displayed correctly, much less the others.
My recommendation, change from percentages for content width to a fixed width, I would use about 960 px to nicely display with monitor set to 1024px wide. This is better than 70% of 1024px which is only 717px. Resize the house images to about 400 pixels wide - experiment. They will look better and load faster also. The sizing of large images with HTML is not a good thing to do.
Also, your content background image is over 300 Kb! Take a narrow slice of it vertically, set it as a background image as you have now. It will repeat by default (if you remove the background-position) or you can set it as background-repeat: repeat-x; Okay, get rid of the background-position and change that to provide a color close to your background-image, for those who have images turned off. Maybe --- background: #ab0505;
Tables are intended to display data, not images. There are other ways of doing the same thing without the use of tables but that is another question, another answer.