One thing that occasionally drives me crazy is reading another person's functions that span 5 vertical monitor lengths, or .cpp files that are over 2000 lines long. For readability, wouldn't it be better to break a 1000 line function into many smaller sub-functions called by one function? Shouldn't a class implementation not span an inordinately huge number of lines? When should you start breaking functionality up into sub-classes or utility classes?
Is it unreasonable for me to be so put off by excessively large files/functions? And, if I am not in the wrong, how should I approach a colleague to convince them to refactor their code?
Edit: There are a lot of good answers to this question, and I should read up on the Code Complete chapter. As for convincing my colleague(s), it seems like a bit too expensive to get them to refactor existing production code, but I'd settle for all their future code being well refactored.