The simple answer is, you can only have one VI with a particular name in the LabVIEW namespace at a time. LabVIEW has a Global VI Namespace, meaning that no two VIs in memory can have the same name. Therefore LabVIEW cannot open two VIs of the same name, even if they are stored in different locations on disk.
So if you have 'Sub-VI.vi' located at 'c:\project1' another 'Sub-VI.vi' located at 'c:\project2\', which ever 'Sub-VI.vi' is loaded first will be used for both. There is no way around this.
If you modify a VI, and still need the original functionality for a different application, you'll need to save the modified version with a different name, preferably to your user.lib directory.
The main thing to remember here is this. Every VI should have
a unique name. If you are using the same VI (for functionality) in more than one place, you should store it in your user.lib directory and leave it there. Then any application that needs that VI will load it from there and you won't run into naming conflicts.
This can be a very involved topic. There are tools available that will let you build an llb that automatically rename all the VI�s it contains so you won�t run into name conflicts when you have more than one application running. Check out OpenG.org and look for the Development Environment Application Builder. This might be beyond what you�re looking for though. It sounds like you just need to be sure and have different names for VI�s that have different functionality.
If you need more clarification, let me know.
Ed

Ed Dickens - Certified LabVIEW Architect
Lockheed Martin Space
Using the Abort button to stop your VI is like using a tree to stop your car. It works, but there may be consequences.