Okay, can you load Internet Explorer? If you can, then mshtml.dll isn't the problem: that file is the Trident engine, which is the renderer for Internet Explorer. If you didn't have it, or it had some problem, IE wouldn't load.
You also definitely have the .NET Framework installed; the error you're getting comes out of the Common Language Runtime, so if it weren't there, you would get a different error.
This is an assembly binding error; it's actually looking for a file called Microsoft.mshtml.dll, the Microsoft HTML Object Library, which is a managed wrapper for mshtml.dll. It's not failing to find mshtml.dll (the Trident engine), it's failing to find a different DLL that serves to "translate" between .NET and Trident.
Microsoft.mshtml.dll is a managed assembly, which means you don't have to regsvr32 it or anything else; you just drop it into the application's directory.
So why is it that you have .NET installed, but can't find Microsoft.mshtml.dll? Because the app you're trying to run is, for some reason, doing a strong name load for 'Microsoft.mshtml, Version=7.0.3300.0,Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' That's the version of Microsoft.mshtml.dll that came with .NET 1.1; you probably have .NET 2.0 or 3.5 installed. If the app is written right, this shouldn't be a problem -- 2.0 can normally run 1.1 apps -- but this one isn't.
So, short version:
The "right way" to fix this issue is to install .NET Framework 1.1. Yes, even though you have 2.0 installed already. They work just fine side-by-side and it won't break anything at all.
The "easy way" to fix it is to get a copy of Microsoft.mshtml.dll version 7.0.3300 off someone's computer that has .NET 1.1 installed, and copy it directly into the app's directory. No need to regsvr32 it or anything, it'll just work.