As an engineer myself i know what you mean...
For some reason, machined samples, broken parts, ect keep piling up on my desk (er, at least when I actually had a job...) as well as papers, reference books and other stuff.
My solution to the problem was 2 fold.
First, get a second desk/table near your computer if possible. This table will be designated as space to throw "stuff" on. I like to think of my desk as like a computer system (even though I'm a mech, not a comp). The second table represents the "computer's" hard drive while your primary desk represents the "cache" (and you, of course being the CPU). Anything that you are working on at that particular moment is on your primary desk, nothing else. Anything that you are not working on at that moment goes to your extra table.
The second part of this is the scheduled cleanups. I personally reorient myself every week in terms of project status and set goals and priories for the week. During this time (typically on a Monday morning) i will also go through the table of "stuff" and start either throwing stuff out, returning garbage to the production floor, or put stuff in "storage" (ie, the ground, this is reserved for projects that are going to be on hold for at least the next week and wont be used this week).
I believe in efficiency. however, I also believe in focusing on only one thing at a time and working with it, muti tasking reduces overall efficiency and that is why i don't have a "clean as you go" mentality (im also kinda lazy when it comes to cleaning...). If you are going to do cleaning, do it in one shot so that you know what you spend more time doing as opposed to wasting time figuring out what to do.
I hope that helps