Preferred and deprecated versions can be used to influence Cabal's decisions about which versions of HTTP to install. If a range of versions is preferred, it means that the installer won't install a non-preferred package version unless it is explicitly specified or if it's the only choice the installer has. Deprecating a version adds a range which excludes just that version. All of this information is collected in the preferred-versions file that's included in the index tarball.
If all the available versions of a package are non-preferred or deprecated, cabal-install will treat this the same as if none of them are. This feature doesn't affect whether or not to install a package, only for selecting versions after a given package has decided to be installed. Entire-package deprecation is also available, but it's separate from preferred versions.