Limitações de uso para um sistema

Pessoal. Eu gostaria de saber opiniões/dicas/tutorias/links, o que seja sobre formas de fazer com que um sistema pare de funcionar após certo tempo. Isso no caso para um sistema que estou desenvolvendo.
Por exemplo: um amigo meu, sempre quando vai instalar seu sistema para um cliente, ele poe no nome da empresa imbutido no código fonte. Assim, se outra empresa for usar, o sistema nao irá funcionar. Assim, se uma outra empresa for usar o software, ela irá alterar o nome da empresa (tem um cadastro dentro do sistema para isso) para poder emitir relatorios e notas fiscais. O sistema entao detecta essa mudança, e deixa de funcionar.

Mas isso nao evita a falta de pagamento, nem o uso por empresas que nao emitem nota (claro que isso nao existe no Brasil), e deixa mais um monte de brechas.

Acho que a cada tres meses, o sistema pede uma chave, que eh gereda pelo desenvolvedor, se essa chave nao bater, o sistema tb não funciona. Mas baseado em que dados poderão ser geradas tais chaves?

Conseguiram entender o que eu quero? Entao, alguém já passou por isso ou conhece algo sobre?