Ecommerce is always much more hard work than a straightforward content site. I've been producing ecommerce sites for 12 years now and although the technology has changed the basic issues have remained the same. There's a lot of wisdom already on this post so I'll do my best...
About a year ago I started using EE with CartThrob for ecommerce projects and found them to be a great combination. CartThrob makes use of standard EE channels for product data so there's less of a learning curve for me and my clients.
In my experience the things to watch out for with ecommerce are:
security: don't be complacent about this. Make sure that your site is secure. I've had the nasty experience of having one of my sites hacked. At best it is very embarrassing (you have to explain to your client why it's happened) and at worse you're dealing with legal problems. Of course, having your payment gateway process the transactions off-site makes this less of a problem however you should still take it seriously. Ecommerce sites are a popular target for hackers.
payment gateway: which ever one you choose there are two broad types of service. One where the transactions are processed on their servers and another where your server is used. My advice, use the service where they process the transaction on their server. You can usually "hide" the mechanism by embedding the payment gateway's card authorisation pages into your site using Iframes if you like. Here in the UK my preferred payment gateway is SagePay. I re-style their authorisation pages to match the site and embed them into the checkout in an Iframe.
PCI DSS Compliance: I'm not sure about the rest of the world but here in the UK the banks insist on my customers complying with this otherwise they charge them a monthly fee for being non-compliant. By using an off-site payment gateway the process of being compliant isn't too hard but as a general rule find out what your customer's merchant bank requires of them to trade on line.
shipping: this has already been mentioned. Never underestimate your customer's shipping rules. You will need to make sure that the site's shipping calculations can take account of all combinations that may be ordered as well as types of shipping, geographical area etc. etc. Spend time with your client at the beginning of the project and make sure you really understand the way they charge for shipping. I had a customer who took 9 months to devise their shipping rules because before ecommerce came along it was "Fred in the warehouse who could just look at an order and know how much it would cost". Once you understand their shipping calculations make sure that your chosen ecommerce system can cope. With CartThrob I've been able to write my own shipping plugins because the standard ones haven't catered for my clients' needs.
product data: where is it? In a spread sheet, an MS Word document, on sheets of paper, in a database? One way or another all that data ( descriptions, sizes, prices etc) has got to be put in to your ecommerce system. Find out early on, you may need to charge for data entry.
photography: bad product photos will do more harm than good. Does your customer have good photos of their products? If not, get a professional photographer to take some.
SSL: Even when using a payment gateway I tend to advise my customers to buy an SSL. That way, their customers see that the entire checkout is secure and not just the page on which they enter their card details. I find it helps their customers have confidence in the site. If your customer can afford it, an EV certificate is best.
testing: we all hate this bit. Test, test and test again. Ideally get people to test the site who have never seen it before ( just like real customers). Make sure the site functions correctly, the shopping cart totals are correct for different combinations of products and that the shipping is correct ( again, for different combinations of products in the cart).
I hope this helps. Good luck!