I like the idea of requiring a credit card at registration, although they could still register with one of the valid cards and then change it for each order. I also like making them verify their e-mail address, but my client does not want to do that and it is so easy to sign up on hotmail or yahoo without any information at all. I also like the fact that you encrypt and store the credit number on file. I don't know much about encryption though, so I opted to not store the entire credit card number.
The shopping cart system works like this:
-User adds items to cart
-User must login over SSL or create a new account, nothing is verified except that each field has a value and important fields like email, and phone number are formatted correctly
-User enters credit card info and Authorize.net checks address, http_referrer must be from same domain.