Each idea becomes a project, even if it is a potential project.
Projects are under a year (2008) directory under a 'work' directory (where work refers to something I'm working on, as in in-progress, not work as in job). But job stuff can go under work/{year}/projname too.
So then I have:
~/work/2006/proj1
~/work/2006/proj2
~/work/2006/projn
~/work/2007/proj1
~/work/2007/projn
~/work/2008/proj1
~/work/2008/projn
etc.
Then when something is really finished and polished, I move it to a ~/proj/projname directory. That happens only rarely. I've been reconsidering this and might start keeping everything in its original place under ~/work/{year}/projname
The other systems I've tried suffer from not being scalable as the years go by.
Periodically I back up each year (zipped and gpged) to Amazon S3 with a script.
Sometimes a project will span years, of course. When that happens I decide on a case-by-case basis whether to do a symbolic link back to one original project directory, or whether to start fresh at some point with a clean set of files for that project, leaving the cruft behind but still intact in a previous year.
Inside each project I can still use version control for the project.
Some projects are just repositories for ideas. Projects can be my own, or they can be me playing with third party tools I've downloaded. Even just a new open source package I'm installing might get its own project, with all files, if it's tricky and I want to make my own installation notes for future reference.
All project directories have a notes.txt file (or can have, at least). I have a 'tagthis' script that takes text tags as argument and adds the new tags to header lines in notes.txt in the current directory. Then later I can grep for these tags.
Works pretty well so far. It gives me the freedom to call anything, even an idea I don't have time to work on right now, a project and make a starting place for it. So-called projects in this scheme are very, very informal, so it's a very light weight system that doesn't get in my way, yet it keeps everything organized forever.