Solitamente, i programmi come InstallShield, sono gia capaci a ripristinare il sistema al momento della disinstallazione, o meglio, sono capaci a ripristinare tutto quello che viene copiato/creato al momento dell'installazione .
Spesso pero' i programmi che controllano la data, creano file o chiavi nel registry, non nel momento dell'installazione, ma alla sua prima esecuzione .
Questi files o nuove chiavi sono completamente slegati dal programma e quindi non rintracciabili da nessun software.

Ad esempio:
Io programmatore, faccio in modo che al primo run del mio programma, se nella HKEY_CURRENT_USER\Controlpanel\Keyboard non esiste la chiave "Pippuzzo", la creo e gli scrivo la data di scadenza del programma.
Al secondo run, controllo la presenza della chiave e faccio il controllo della data.
L'esempio un po' stupido, e' per farti capire che potrei mettere i dati di controllo in locazioni assurde e solo facendo un'analisi del codice in assembler e' possibile capire se la scrittura/lettura di un dato in un certo file/chiave di registro, e' essenziale al funzionamento del programma, o alla sua "protezione".

Spero di essere stato esauriente, anche se sicuramente poco preciso.