If you don't want to distribute third party dll's with your own, you can either:
1) State the requirements and assume the dll will be installed in the GAC. It won't work most of the time, and having assemblies locally serves a purpose: your application is not supposed to break if some system wide update messes with your dependencies.
2) Bite the bullet and distribute the third party dll's with your own.
3) Providing it's legal to do so (watch for the licensing provisions of your third party dll's) use IL Merge to statically link your assemblies (your own and any third party). With ILMerge you can end up with having a single assembly containing all your references. You only merge when packaging for deployment (there are custom msbuild/NAnt tasks that do so for you), when developping in VS you just keep doing as you used to (referencing assemblies). ILMerge is used in quite a few projects to have a self-contained, compact executable (LinqPad comes to mind).