For those who don't know, dongles are hardware tokens that represent your license to use the software, and the dongle had to be attached to the computer so the software could check for its presence. Using dongles required you to either add code to your program to test for the presence of the dongle, or you could encrypt the executable using a key stored on the dongle and a program launcher would retrieve the key from the dongle to decrypt your program. In either case, if the dongle wasn't present a dialog would appear telling you the software was unlicensed and then terminate the application.
My evil idea was to tell people up front that the dongle was required for the software to work, but rather than terminate the application when the dongle wasn't present I would introduce subtle errors into the data manipulated by the program.
* CAD program missing the dongle? Each second, a random vertex is moved by 1 pixel
* Statistics program missing the dongle? Random numbers are added to data sets during aggregate calculations
* Video game missing the dongle? Game stutters at random intervals.
Oh sure you could use the software without the dongle, but it would be super-annoying to do so.I never got the opportunity to implement this because people realized that dongles are dumb.