Big subs happen, and, occasionally, there is a good reason for it. I have made some very large subs a couple of times where I've felt it was motivated:
* A large calculation (millions of values in, thousands of values out and lots of math in the middle). I could have broken it up into several subs, but that would have required passing 8-12 parameters, most of them multidimensional (up to 6) arrays of types. It really wouldn't have done anything for clarity, so I let it be large.
* A search engine for a database frontend. Basically, I made a code generator, which analyzed the database, produced most of the gui and then generated SQL statements based on what the user had selected. The code generated by this generator had some very large subs, as it more or less mirrored the database structure when building gui and SQL statements. However, as it was generated code that needed no manual touch, I didn't bother.
* An AI for a game. Lots of alternatives to try out, deeply nested. I tried a recursive solution, and the stack promptly exploded, so in the end, I put it all as deeply nested loops in one sub instead.
However, for readability, I'm pretty careful to comment and use regions a lot, to bring some structure to it. I also always go back and see if there is room for refactoring, if bits can be broken out or the code can be partitioned in a reasonable way.