This walkthrough will probably work on all old(er) linuxes, where you don't/can't upgrade just to get firefox3. The main issue is firefox3's dependency on a newer version of gtk, so we will compile one for ourselves and then set LD_LIBRARY_PATH to use our compiled libraries.
So, here it goes:
1. Download firefox3 from getfirefox.com.
2. Download source of atk at ubuntu.com.
3. Download source of cairo AND pixman at cairo's website.
4. Download source of gtk+, glib and pango at GTK's website.
Save all sources in your home dir.
Now, on to compiling (you can use any other path as destination, I'll use ~/firefox):
mkdir -p ~/firefox/src
tar xvjf ~/firefox-3.0.1.tar.bz2 (or whatever version you've downloaded) (this will also create ~/firefox/firefox)
Untar all source tarballs you've downloaded above - they will all create their own directories.
Now you've got atk, cairo, glib, gtk+, pango, pixman in ~/firefox/src.
Compile them each by executing:
cd (package dir)
The order of package compilation matters, the right order is: glib, pixman, cairo, pango, atk, gtk+.
If you're done, you can execute firefox like this:
Of course you can organise the directories better if you wish - but for a quick, working firefox3 in your homedir the above is just fine.