ChatEdit is another complicated mod to do something simple: allow you to sellect your chat text for copying. Simply shift-click a chat frame to enter 'edit mode'.
Edit mode is basically an edit-box in which the text won't let you change it. The edit-box directly overlaps the chat frame and is scrollable and re-sizable by the normal methods, as well as a scroll bar that pops up to the right. To make copying less painful no text will be added to the edit-box while in edit mode, but it will appear in the chat frame when you leave edit mode.
To exit edit mode click anywhere on the WorldFrame or hit escape.
This mod was actually written a long time ago, but for the longest time I wasn't able to get the edit-box to show all the text. I've now determined that if you append "\n\n " onto the end it will show all the text. However it has the caveat that there's a blank line at the end and sometimes the line has the "..." elipses signifying truncation. But you can just ignore it because all the text should still be there.
ChatEdit also increases the default chat frame memory from 128 lines to 500.
Note: For reasons of auto-line wrapping and non-standard width fonts it is nearly impossible to figure out what scroll position the chat frame is at. For this reason when you enter edit mode it will always scroll down to the bottom. Also be aware that the editbox has smooth scrolling as oppossed to the chat frame's line by line scrolling.