UPDATE:
For those that are using this Javascript method, I have made the code easier to implement. All you need to do is change the top variable to add more pages that you want to secure.
var secureUrlPattern='login|Cart|/590/';
if(location.protocol.toLowerCase()=='http:'&&location.href.match(secureUrlPattern))
location.href=location.href.replace('http:','https:');
else if(location.protocol.toLowerCase()=='https:'&&!location.href.match(secureUrlPattern))
location.href=location.href.replace('https:','http:');--This is the first version, you do not need to read any further if you are using the easier version above.
< script type="text/javascript">
if(location.protocol.toLowerCase() =='http:' &&
location.href.toLowerCase().indexOf('login') > -1 )
location.href = location.href.replace('http:','https:');
if(location.protocol.toLowerCase() =='https:' &&
location.href.toLowerCase().indexOf('login') == -1 )
location.href = location.href.replace('https:','http:');
< /script >
The first IF statment in the code above is looking to see if your using http and on the login page then tells the browser to switch to the same location but use SSL.
The second IF statment does just the opposite, so any time you are on a page with the word "login" in the url it will tell the browser to use SSL, if you are not on a url with "login", then it will switch back.
Just change the word "login" with "cart" or whatever might be in the Url if you want to do it with different pages. That is all you need, paste this at the top of your page, (or skin in DotNetNuke), or include it in an external Javascript file that is linked in.