Since a given project can still list many products, you are still looking at at least two tables, maybe more:
"For the most part, no product is the same"
Since that implies that there may still be cases where the product IS the same, you may still find it useful to use the standard set up even though you sell custom designed products:
A table of client information is also likely to be useful as you may have more than one project for a given client:
I can't imagine having a dropdown menu with 1000 projects on it.
This is a valid concern but a single drop down list is not the only option for selecting a value. Conditional value lists can split up the list into sections by selecting a category in one field and then that value limits the list of values displayed to just those that are members of that category. There are other script supported approaches that allow you to type in search text and the list of possible values filters down to just those matching or containing the text you type in--updating with each additional keystroke.
Here's a demo file that illustrates several such approaches: http://www.4shared.com/file/plr_jbkk/EnhancedValueSelection.html