Your question is vague, to get better answers you should put a concrete example of the problem you are facing.
Here are my ideas so far, they might give you a hint on what to do :
You could use the Facade pattern, by hiding the awful implementation and presenting a handsome one : http://en.wikipedia.org/wiki/Facade_pattern
You can extend classes using extension methods : http://msdn.microsoft.com/en-us/library/vstudio/bb383977.aspx
You can make an alias of a particular namespace
Example of the some of the hints described above :
using System;
using MyFamiliarNamespace = MyScaryNamespace;
using MyFamiliarClass = MyScaryNamespace.MyScaryClass;
namespace ConsoleApplication1
{
internal class Program
{
private static void Main(string[] args)
{
var @class = new MyFamiliarClass();
@class.HelloWorld();
}
}
public static class MyScaryClassExtensions
{
public static void HelloWorld(this MyFamiliarClass myScaryClass)
{
Console.WriteLine("Hello world !");
}
}
}
// Consider this part being in another assembly
namespace MyScaryNamespace
{
public class MyScaryClass
{
}
}
In my opinion you should not copy classes, while it seems the easiest thing to do it would sooner or later make things even more confusing, remember to Don't repeat yourself in programming.
Renaming namespaces : unless you have a tool like Resharper, doing it manually can be a real pain and prone to errors
Duplicating objects (or sort of) : if you absolutely have to duplicate objects then using something like Automapper can be a real-time saver in some situations.
Provide more details in your question so we can suggest better answers.
And giving a better title to it might be wise, too.