In LabVIEW 7.1 a private assembly needs to be in the same folder as your top level VI. I'm not 100% sure, but if you have a subVI that is referencing the .NET assembly and you have this subVI in a subdirectory then you will also need to register the assembly using the registration tool in the "Tools->Advanced" menu. When I had my project in LabVIEW 7.1 I had to have my .NET assemblies in three different places! That was because I had three different top-level VIs, and the .NET assemblies needed to be in the same directory as the top-level VI. At least with LabVIEW 8 the assemblies are referenced by a relative path, so that I could keep them in one place.
As mentioned in the previous post, you can place the assemblies into the GAC. However, in order to install a .NET assembly into the GAC it needs to be strongly named so that it has globally unique identifiers. Private assemblies are meant to be used by a single application and are distributed with the application, and reside in the application's directory (or specific subdirectories). A shared assembly is meant to be used by multiple applications, and this is allowed to be installed into the GAC. If you need to convert your private assembly so it's stronly named, you can check MSDN, or take a look
here for a brief overview.