Even though I've only just started sorting lego bricks out and my collection of brick has only just crossed 1000, I think there is a point here that has not been crossed as yet. All of the storage systems on this post look awesome and when the collection gets to the size that you are speaking about, I dread the thought of having to change the way you sort things!
Having said that, I'm sure that the owners of these collections know exactly where every piece they own is and could probably walk into there crowded basements and walk directly to the storage bin that has the 1 x 1 button widget and pull out the exact color they need to fill an order. Me on the other hand am not so clever.
If you are thinking of starting up a store, or even looking to build sets for a collection of lego bricks the you were given by the grandparents of the friends next door, you need a method of being able to find the parts easily. Identifying the parts can be done usually by looking at the instruction books. They normally have the element ID list at the back of the book. But if you have a pile of bricks in front of you, this element ID is pretty much as useful as a bucket with not bottom.
My theory is to sort the pieces out that will serve you best. If you are planning on opening a store, then you will need to sort your blocks out so that you can find the part that someone has ordered from you based on where you have raised the store. For example, bricklink has all of there parts listed down by the Lego Description ID, and then they list the colour in each page, Therefore, you should sort your parts by Part number and then by colour, or vice versa.
If you are trying to put together sets, I would sort brick by Element ID so you get the exact part you need based on the part you need to build your set.
The next step is to be able to find yoru parts easily. If you have a PC, and are a little Savvy, I would suggest a searchable database (MS Access or the like). If not so savvy, then a spreadsheet at the very least. In this you can add the element ID, Colour and the location of the part in your storage system. For example, You have some of those multi compartment drawers or conatiners, just number the conatiners (you can even number the compartments in the conatiners if your wish, but not really neccessary) and place that number agianst the element ID in your spreadsheet. This way, it doesnt matter if the parts are stored away from there like parts, you just do a search on your spreadsheet and find the part based on the element ID from the instruction book. AS you collection grows, just add more boxes.
Personally, I have sorted my small collection out early, by Color and then by Design ID. I plan to start up a Bricklink store, so when I get an order, I can find the part first by color and then by Part number. I have used part envelopes in storage boxes so i can sort the part numbers as needed by color. If I need to change the way I store parts, it will not be a big issue for me to move the parts.
I downloaded the brickstore software to build my database purely because It has a feature that allows me to bulk upload to the bricklink store. In this database I can add the location of the parts as my collection grows.
So In summary,
1. Sort your bricks out to suite what your are trying to do
2. Use some PC skills to inventorise your collection and make searching really easy
3. Simplify how you use your storage boxes so that you dont have to move parts, ie number your boxes and add the number to your inventories.
Hope this helps some what.
PS Here is a quick Pic of how I have started my collect sort. No guarantees that it will not change, But, I'm able to still follow the principles above.