planioe is right, you can only use the GAC.
I have used the GAC extensively, as I have had to integrate assemblies with BizTalk. The GAC allows versioning, digital signed components and a central location for a program to look for an asembly.
Why does it need to be in the system32? By default, the .NET Framework does the following:
- Current directory
- Parent directory
- Path environment variables
If it can't find it in any of these, it will error.
Hope this helps,