Responsive Design means that the page layout (page widths, image dimensions, text size, etc) changes based on the width of the device/browser viewing your webpage. Many times, web pages will resize images using CSS by setting a max-width of 100% for all images, so they never stretch beyond the space they are in. This is the reason that the TABLE driven template squishes images. Tables are inherently flexible, so the cell containing the text is as wide as possible, and the cell containing the image is only as wide as the image forces it. If the CSS for the page has max-width: 100% set for that image, then the image is squished because the table cell is too small, the table cell is too small because it is waiting the the image to push it wider, but the image isn't going to push it wider because the CSS is telling it to always only be as wide as the container it is in (see the cycle?). DIVs can be set to not be inherently flexible like tables, so they avoid this issue. I hope this helps explain why the DIV template works and the TABLE template doesn't, because your web pages are responsive.
This same CSS is still causing issues because your image has dimensions setup (such as height="100" width="60") within the image code itself. So the CSS in your web page is saying the width can only be 100% of the space available, and the DIV is setting the amount of space available (which is based off a width of the space, not the width of the image). The DIV is smaller than the image, so the width of the image is adjusted, but the CSS doesn't do anything with the height, so the width is smaller, but the height remains the same (such as height="100" width="40"). To avoid this, you need to remove the image properties within the image itself so that the image size will be based off the CSS specifications, instead of a mix of CSS and HTML which aren't working together.
Solution: In the template I sent, you will see the tag [-- PRODUCT.Graphic ONLY_ALT_TAG --] (it is in the template a few times). The PRODUCT.Graphic part of the tag pulls in what you have specified for the product graphic. The ONLY_ALT_TAG changes the product <img> tag to ONLY include the URL for the image and the alt attribute (image description) for the image, and it leaves off all other settings such as height, width, hspace, vspace, border, etc. The reason this is not working in your store is that the tag parameter ONLY_ALT_TAG was added in ShopSite version 12, but your store is a version 11, so the tag [-- PRODUCT.Graphic ONLY_ALT_TAG --], is returning the image with the image parameters. You can 'build your own image code' by replacing all instances of [-- PRODUCT.Graphic ONLY_ALT_TAG --] with <img src="[-- OUTPUT_DIRECTORY_URL --]/media/[-- IMAGE PRODUCT.Graphic --]" alt="[-- PRODUCT.Name REMOVE_HTML --]"> (assuming your product images have been uploaded into ShopSite, if they have not, and you are specifying the entire URL for your product images under Products > Edit Product Info, then leave off the [-- OUTPUT_DIRECTORY_URL --]/media/).