You may want to stick with the VS.Net defaults, which set the CopyLocal value according to the following rules (in order):
1- If the reference is another project, called a project-to-project reference, then the value is true.
2- If the assembly is found in the global assembly cache, the value is false.
3- As a special case, the value for the mscorlib.dll reference is false.
4- If the assembly is found in the Framework SDK folder, then the value is false.
5- Otherwise, the value is true.