There are supposed to be around 200 factors that contribute to how google ranks a website, so it will be combination of things, not just one thing. The site does have a lot of inbound links, and this should help a lot and be a major influence, although a lot of this is through link exchange, directories etc, and google is supposed to be playing down the importance of reciprocal links.
The site also has good onsite seo, with good focused titles on each page, good keyword density, etc but it could still do a lot better in this respect, e.g. targeted words in the urls, better use of header tags, making the product details pages search engine friendly and indexable - they are currently javascript popups so they are not even indexed by the search engines, etc.
Your friend's comment about the way the pages had been constructed being difficult to work with might relate to the use of a table-based layout and/or code complexity. This is difficult to work with if the site was created as a static HTML site since content would be interspersed with layout, but I would guess that the site is a content managed dynamic site where content and layout is separate. In anything a table-based layout would lose some points in the overall ranking algorithm, although it doesn't seem to do this site any harm (minus points in one area are outweighed by plus points in others). Table-based layouts are still used in some ecommerce systems, e.g. osCommerce 2.2 and you will still find plenty of tables in PinnacleCart, but the general move is towards a more CSS/XHTML styling where tables are not used for layout, e.g. osCommerce will have this in v3 (currently in alpha). Much of these issues are down to code complexity (content to code ratio) and semantics (being able to extract meaning from the content), which are again a few factors out of the 200 factors google considers.
Also, one of the other factors (out of the 200) that helps, is having cushions as a major part and at the front of the domain name.