After having a look through the code, design and specs (specifically http://nuget.codeplex.com/wikipage?title=Enabling%20Using%20NuGet%20Without%20Checking%20In%20Packages%20Folder)
it seems that one simplification may be to push down the ExcludeVersion or SideBySide flag to a package level.
This would allow the default to be set per-solution or across the board (hopefully non-versioned directories under packages) with an exception placed within the packages.config where required. This also allows mixed mode where required.
This also simplifies the existing pattern of DefaultPackagePathResolver, which needs to be instantiated differently wherever you need to run with the ExcludeVersion functionality.
This would look something like this (with the default being a missing attribute?):
<?xml version="1.0" encoding="utf-8"?>
<package id="Castle.Core" version="2.5.6" SideBySide="true" />
Obviously there would be quite a few changes required to support this, but it may make NuGet quite a bit more flexible.