Блин... А как можно хорошую защиту поставить?
Ну надо решить "к чему привязываться". Как я понимаю, специальный hardware ключ не обсуждается. Тогда простая и хорошая привязка - к имени/логину пользователя.
Другая, на первый взгляд неказистая, возможность - пулять по udp пакетики с (условным) ID программы. Таким образом если 2 или более запущенных копий в сети (с тем же ID) - они все выходят. А сеть практически везде есть