I am going to shamelessly steal a great video / ad from Google Analytics to prove a point and that is that we, as an industry, still suck at taking money from people when they really want to give it to us.
Simply put we focus on the wrong things, we look to cross sell, get email sign-ups, additional customer data and sell insurance and then we pat ourselves on the back when 25% of the people leave while trying to buy.
I think this video talks to a couple of key points A. That you really need to have a deep analytical understanding of your checkout and B. Put your process through a different lens, if this was a brick and mortar store (or another site) would it make sense.
Here are some tips that have always worked (for me) in improving the checkout experience (translation: make it easier for people to give money to you):
1. 0% abandonment is your goal: this part of your site is the easiest to increase conversion, people starting the checkout process are looking to buy so don't settle when people leave. This means you have to have a very solid understanding of cart performance and this is more than just clickstream analysis, you need to understand the why (VOC tools like Foresee can help with abandonment surveying) and session replay (Clicktale or Tealeaf) to show what is happening from different view points.
2. Have an anonymous checkout: I know how this conversation goes, if we can get everyone to sign in we can target better, onsite and off, so we will force (and the key word here is force) our customers to setup an account to buy. Think about how you would react every time you went to buy something they wanted to know everything about you...it simply wouldn't work. So why do we believe it is acceptable online? Give your customers the ability to checkout anomoyously and if you delight them they will be more than happy to take the relationship to the next level
3. Save everything: Make it easy for people to check out in the future, save their address, credit cards and anything else that would help them out (think reoccurring orders). This also means that you need to store the security number on the credit card. No need storing the rest of the credit card info if you are going to make them go back to get that little 3 or 4 digit number.
4. Support as many browsers as possible: This goes back to that simple rule "make it easy to take money from people when they want to give it to you", nothing drives me madder (and at the same time shocks me) when I can't check out of a site on chrome. Make sure that your cart, of all places, can support the top browsers and I would strongly suggest you go deeper here than the rest of your site.
5. Help: Don't assume anyone understands anything about your cart, checkout or business, make it easy to get help or find out more information, have hover-overs that clearly explains what is needed and where it makes sense make it graphical (security codes). Reassure throughout the process. If you have free returns or anything else that makes hitting that confirm button easier call it out every step of the way.
6. Say Thanks: Not part of the checkout but remember to thank the customer on the confirmation page. This is also the time to capture that email address or convert the anonymous shopper to an account.
Some random thoughts but these have all worked for me, if you have any of your own please share and lets all try and make what should be a really smooth process a better process than it is today.