Haha romms missed that line altogether
think I must have been in recovery from reading the whole post
many use one of two methods with slight variation... the more common now is to charge by the hour (Freelancers) to which its common to advise an upfront deposit, the second approach is a fixed fee for a fixed requirement specification as signed off before commencing again usually requiring an upfront deposit.
in terms of actually ensuring you receive payment the rule is simple, don't in anyway give the client any form incomplete or otherwise of the work before the receipt of full payment, obviously clients are sceptical of this method online as such contracts and multiple forms of id (passports, utility bills, drivers licence) would be required but the rule still applies.
This then begs the question how do you demonstrate functionality to the user across the net? The common mistake is to upload a demo site, as we all know it's simple to then copy the site with or without ftp access as such the technique we have and do still use is the use of a Remote Desktop Connect (logmein, remoteassistant etc) to allow them to navigate and view the site from our local servers.
Essentially the rule of thumb as above is to not provide the product before payment, if you allowed someone from your shop to walk away with your laptop to demo, would you expect them to come back to make payment?