The simple solution if they are not to knowledgeable is to hard code names
and addresses into reports etc. and supply it as an MDE.
This way an invoice from Jones & Co. would read SMITH & SON if they
"borrowed" a copy.
Probably the easiest way today other than that is with a dongle.
This is a gadget that plugs into a parallel port and your application checks
for a unique ID before running.
Perhaps somebody has something similar to the way MSFT licenses software now
with a snapshot of a particular machine.
If this is a critical application you should be able to supply the user with
an immediate solution if their program stops responding for some reason.