Programs will by default usually put at least their executables somewhere below /usr. My first thought is that you can mount this external filesystem on /usr when it's present, and thus have most of your files on it.
The problem is, /usr is quite an important directory, and one that many programs probably expect to be present. Of course, you'll have a different /usr directory on your small OS partition, but if a program puts something there when the disk is unmounted, it'll expect it to be there when the disk is mounted, and of course it won't be (well the file will still exist but be 'hidden' by the external drive's /usr directory). That said, you might be able to get away with it - a lot of it comes down to what assumptions applications make about the underlying filesystem (and the persistance of files written to /usr).
Another option which will work, but be more hassle, is to mount your external filesystem on its own directory as you normally would, and build everything from source. When configuring the programs, you can normally pass in the directories you want it to put its binaries, data files etc. Installing gnome from source might be a bit of fun though...
And then there's the /home directories, which also end up containing a lot of data which isn't part of the operating system, so you'd have to move these too.
In fact I've assumed you'll be moving the hard drive in and out from time to time... but do you plan to keep it docked and mounted for basically the whole time you use the computer?
If so, that simplifies things a lot. Just make your 5GB root partition ('/'), then make separate partitions for all the top-level directories that contain stuff that isn't the operating system... if you make partitions for /home (and /root if you want, which is basically another home directory albeit a less well-used one), /usr, /var, /opt (if you fancy, probably not much point)... yeah, that's probably it. I'd consider /tmp a system directory, /bin and /sbin contain core binaries, /etc will contain config files for your installed applications, but also contains config for system-level utilities and probably should be left alone. The other top-level directories tend to contain special things that aren't really files either.
This doesn't seem very clear to me. If I'm right and it makes no sense, ask me for clarification while prodding in the direction you want to go.