Well, Maybe not MSOffice size but in large projects (especially with more than one person) Dlls are a good way of sharing code workloads. Different people can work on different libraries and makes sure all passes and returns within the origional design.

Also support of segments of the code is easier to hand to a support team than just dumping everything in their lap!

But in my opinion, The BIG reason is that it forces you to build and plan better from the start. How many times have you been typing code and still thinking about design at the same time? Not a very professional construction method.

"Well, we've built the lounge room, it has doors on the east and west, Where would you like the kitchen?"

-this doesn't happen in other industires, it shouldn't happen in professional programming.