This is an idea that may be promoted by UKIP - to make patients value appointments more highly, so be less likely to make frivolous ones and make non-attendance less likely. An extension to this is to only charge 'no-shows' - so making patients less likely to waste NHS time by not turning up.
If charging for no-shows is seen as a good idea, I would suggest a good way of implementing it would be to charge when the appointment is made, and then refund the charge when the appointment is complete.
This would mean a patient is asked for money when they have something to gain (an appointment they want), so are motivated to pay. Whereas trying to charge them after an appointment is missed will be asking them for money for something they never had (may even dispute), and wont want to pay. The number of unpaid fines, disputed debts and bad debts etc that we already have in the UK show how hard/expensive this is likely to be.
Payment could be made in a huge number of ways - even added to the phone bill of the person booking the appointment - so should be simple and automatically collected.
You could take this one step further - by charging different deposits for different appointment times - missing an appointment at a busy time could be *cheaper* as there will be plenty of people around to fill the space created, so no NHS time is actually wasted!
A further - and in my view vital - step would be for the patient to receive a refund greater than their deposit if an appointment is moved, cancelled, delayed etc. If a patient is being charged for wasting NHS time, surely it is only right that the patient should be compensated when the NHS wastes theirs?