Junky,
I see this all the time when I first come to client sites. Most of the home grown apps follow a "Load it all and then filter it" approach to data. This is really easy and helps you get going quickly but it will inevitably cause what you just mentioned.
I challenge you to start from the assumption that your app doesn't need to load any data while starting up except for it's basic configuration.
Let that sink in, then consider making filtered calls to your database as the application is used to get the chunks.
Also, take a harder look at your LINQ and make sure your underlying data model is optimized. LINQ is going to be slow if you have like 3 huge tables, try normalizing, LINQ does better.
Also, the LINQ itself should have as many filters in the "where" section as possible.
And then of course theres always just limiting the number of rows returned. Ask yourself if the user can really look at 100,000 things? Good luck.