The solution to replace the /usr/share/texmf folder contents will certainly work -- but only so long until the package manager updates you TeX distribution.
The preferred way to install a local copy of a huge package like pgf 2.10 would be to install it either into your local texmf tree (which should have a higher priority when TeX actually searches for files) or you could also set the
TEXINPUTS variable accordingly. The first approach is certainly the standard approach, but it may require to re-structure the directory representation of pgf 2.10 (pgf2.10/generic/pgf --> ~/texmf/tex/generic/pgf, pgf2.10/latex/pgf --> ~/texmf/tex/latex/pgf should already be enough for a LaTeX distribution).
The second approach would mean to unzip pgf 2.10 anywhere on your hard drive (for example the directory into which you would have copied
.sty files for simple packages) and set
TEXINPUTS=<my dir to pgf 2.10//: before compiling with this particular version. Note that
// means "search in this directory and all its sub-directories" and the trailing
: means "now continue searching in the default search paths" (don't forget this trailing
:!). There are reasons why this might be a bad idea (slower due to lacking search index, also searches in pgf/doc/**, to say two obvious choices), but I like it because setting an environment variable is so light-weight and usually works much better than the other alternatives.
Note that even if you would use MikTeX, you could still install pgf in any directory of your choice (providing you apply the TDS restructuring as indicated above): you would then simply tell MikTeX "ah, and by the way: use my custom directory with higher priority than the system's default". But since you do not appear to use MikTeX, I won't go into the details.