Perhaps I need to branch this specific to virtualenvs. The problem is we don't want to simply do the check on every invocation because of:

* Warning fatigue (see enough warnings, start just ignoring them)
* Privacy concerns (telling PyPI every time you invoke the ``pip`` command).
* Performance (Every HTTP request incurs a performance hit).

The 2nd and 3rd concerns can be addressed by simply writing the latest version in a file and only refreshing that file every so often. However that still doesn't address how to handle the warning fatigue. On one hand yes it'd be great for them to update every virtual environment, on the other hand if they cycle through 10 virtual environments do we really want them to be prompted to upgrade all 10 immediately? Will people just start to ignore upgrade warning?