Using a computer clock seems like a reasonable way. Of course, the user than prevents this by changing the clock, but this is likely to create enough inconvenience that they are likely to pay a reasonable price for the software.
Simply put, inside the OpeningFcn your GUI
expiryDate = '2012-12-31'; if now > datenum(expiryDate) h = errordlg('please upgrade to a full license'); uiwait(h) return %
Jonas source share