I would also organize your layers in such a way that your can easily turn off “heavy” items. For instance, if you have fasteners, hinges, or other finicky hardware, make it easy to turn off.
Don’s suggestion of working with a really low quality display mesh is a good one. If there are individual objects that are a problem with such a low quality display mesh, you can always increase the mesh quality for that object alone in the objects properties.
I think Don’s idea of worksessions is also good. One thing to keep in mind though if using blocks, they will reduce your file size, but they are slower than plane geometry to display.
One thing I often do if I have a file with a bazzilion objects, I will use a mesh proxy of the object and join as many similar meshes as possible. So, if I have a theater with a couple of hundred seats, my layers might look like:
I would select all the mesh versions of say the arms and join them, and then join all the mesh version of the seat parts, then turn off the original geometry which is under the NURB layer. This way, instead of having a couple of hundred seat backs, seat bottoms, and seat arms in the drawing database, you have one mesh which is all the arms and one mesh that is all the seat parts. This can greatly speed up drawing because you have gone for several hundred objects in the drawing list to two objects.