"Do I try to make one monster app that can serve every organization, risking complexity, less flexibility, and security? Do I just try and optimize and optimize until it can run happily on a less beefy machine? Or do I have too many pre-conceived notions about how customers think, and I just need to pump out a project, set a price, and start going? Help!"
This seems like a problem that can be solved with some pretty basic OO in your business logic layer, and a little creative database work. One system to run all of the sites will save you headaches in the long run. It will likely save you some money as well. Were I in your situation, I would certainly go with the one central system approach.
Off the top of my head, I'd be creating one set of abstract business logic classes that contain what your clients have in common; and a set of abstract methods that will return objects that contain data they do not. I'd create a class inheriting the abstract one for each client, each containing their custom requirements. I'd create a view layer that can adapt to the custom data, and a data layer that is capable of storing the custom data. Let me know if this is too vague.