Background
TS is written in Visual Studio.NET. If that doesn't mean anything to you, well, it's just a programming language. There are many - C++, Java, Visual Basic, being some popular ones. They have slightly different capabilities, but in general you just use the one you are comfortable with.
Visual Studio.NET and Java both rely on your computer having their respective virtual machine running on your computer. Without the virtual machine, any programs written in VS.NET or Java will not work on your computer.
Both name their virtual machine differently - for VS.NET it's the ".NET Framework", and Java has the "JRE" or "Java Runtime Environment". They are both just other software you need installed before running software written in VS.NET or Java.
That's why you need v2.0 of the .NET Framework installed before you can run TS.
Virtual machines are supposed to make software work more consistently on different operating systems. Instead of the EXE file I create running directly on your computer, it runs on the "virtual machine". Virtual machines do other good stuff too, blah blah blah.
The Downside
EXEs written for virtual machines, meaning anything written in VS.NET or Java, have a lot of meta-data ("data about data") included, so the virtual machine knows what the hell is going on.
Anyone else can read that meta-data also. And, in fact, due this thing called "reflection", anyone can read your source code.
If they can read the source-code, they can compile their own version of the software. So they get your 2-odd years worth of hard work for free.
Moreover, they can then remove any code that does subscription checking, and hey presto, there is now in existence a version of your software that doesn't have any of that pesky need to pay anyone for the service they rendered.
They then post that to the infamous "Internet" and your source of income slowly dries up as more and more people forget about karma (which I believe in when it suits me :-)
The Solution
There are some products out there to solve this problem, and they are called "obfuscators". What they do is make it nearly impossible for people to read the source code. I say "nearly impossible", because anything's possible. But the obfuscators make it really difficult.
They also cost a lot of money. VS.NET does come with an in-built community edition of some obfuscator, but apparently they shouldn't have bothered. That's how good it is.
So I bought one of the expensive ones, and it works pretty well....
Windows 2000
...Except that I've worked out that the obfuscator is the reason that TS does not work with Windows 2000.
So I had a look around at other obfuscators, and they are really expensive. Really. It would hurt to buy another one.
I found an open-source obfuscator, the cost being the price of an accompanying e-book. So I bought that, and EXEs obfuscated with that one seemed to work just fine on Windows 2000.
Unfortunately it crashed when trying to obfuscate TS.
Because it's open-source, I was able to fix the bug in the obfuscator myself. And obfuscated TS just fine. But running the obfuscated version of TS I got an error, and I have no idea how to fix that one.
So I downloaded the trial version of one of the expensive obfuscators. And got exactly the same error.
The Result
I decided to wait for the next version of the obfuscator that I'm already using. It's coming "soon". I have no idea when it will be ready. And, there is also no guarantee that it will fix this problem. In fact, the creator of that software says that everything seems to work just fine for him with Win2000 with the old version.
Anyway, this is one of those things that is out of my hands. I assume that company wants to get their new product out as soon as possible, but it's all up to them now.