The main thing to realize is that all payment options suck. So, you should architect your site such that it's possible to have other options for payment, and not keep a large amount of money in their systems.
It just occured to me that maybe there is an opportunity for someone to make a payment-systems abstraction layer. Does that exist yet?
http://e-junkie.com operates as a payment abstraction layer for a few services (Paypal, Google Checkout, 2CheckOut, etc). That is my primary use for them these days, although they do other things, too.
From the perspective of my website, I don't care whether someone pays with Paypal or Google Checkout. Both transactions are wrapped by e-junkie in a consistent API, then POSTed to a URL I gave them. Some Rails magic handles it from there.
It just occured to me that maybe there is an opportunity for someone to make a payment-systems abstraction layer. Does that exist yet?