Secure by Role is a simple Drupal module for shopping sites and others where security is important. When a page is requested, SecRole checks to see if the user is a member of a list of roles which should be only served pages over a secure connection (HTTPS). If this is the case, and the connection is not already secure, the user is redirected to the page they are requesting over a secure connection.
Why is this module's approach better than simply locking down your entire site behind a secure connection? Because not all the visitors to your site will be doing things which demand a secure connection. Search engine spiders, for example, are not going to be sending credit card details; they may even be incapable of indexing pages behind HTTPS connections. Or maybe they're simply human users who are just browsing with no intent to buy anything - yet. But with SecRole, you can easily configure the site so that, once these users create an account, they are served over a secure connection and their credit card details are safe. Your web server can avoid the overhead incurred by encrypting and decrypting data sent or received over a secure connection until it's necessary.