I have both Firefox 3.0.11 (using to post this reply), and Firefox 3.5
installed, and I can switch between them. Here's how I do it:
ubuntu@ubuntu:~/Desktop$ ls -lt /usr/bin/firefox*
lrwxrwxrwx 1 root root 32 2009-07-10 09:05 /usr/bin/firefox-3.0 ->
../lib/firefox-3.0.11/firefox
lrwxrwxrwx 1 root root 11 2009-07-10 09:05 /usr/bin/firefox -> firefox-3.0
lrwxrwxrwx 1 root root 26 2009-07-10 09:04 /usr/bin/firefox-3.5 ->
../lib/firefox-3.5/firefox
And, in /usr/lib:
ubuntu@ubuntu:~/Desktop$ ls -ldt /usr/lib/firefox*
drwxr-xr-x 14 root root 1120 2009-07-10 09:05 /usr/lib/firefox-3.0.11
drwxr-xr-x 13 root root 960 2009-07-10 09:04 /usr/lib/firefox-3.5
drwxr-xr-x 5 root root 57 2009-04-20 10:03 /usr/lib/firefox-addons
I usually download each separate Firefox version as a bzip2 file, i.e.
firefox-3.0.11.tar.bz2 and firefox-3.5.tar.bz2. Then I bunzip2 each separately
and tar extract them into ~ubuntu/Desktop/firefox-3.0.11 and
~ubuntu/Desktop/firefox-3.5. After having tarred each into the above
directories, I then (as root) do the mkdir commmand on the
/usr/lib/firefox-3.0.11 and /usr/lib/firefox-3.5 directories. Then it is a
simple cp -rp ./* from inside each of those ~ubuntu/Desktop subdirectories to
copy the contents to their respective /usr/lib subdirectories. After that I set
up the symbolic links over in /usr/bin as you see them.
I wrote a script, swff.sh, supported by aliases in my .bash_aliases file to
switch between the two versions.