With so much work relying on file attachment emails--text documents, images, spreadsheets, and more--many people have the urge to compress everything. That instinct used to pay off when connecting over dial-up, but typical Internet speeds now mean that you and the recipient may spend more time compressing and uncompressing than seeing any net gain. This is especially true with some file types that are already heavily compressed. Consider the total size and if the file is common on the web before deciding to bother with compression. In most situations, you're better off skipping that process.
Size is a limiting factor overall. Both your outgoing mail server and the recipient's incoming server need to handle that clot of data. In general, you'll be fine sending and receiving attachments that are 5MB or smaller. You'll probably be able to send 10MB. I've gone even higher in a pinch, but those messages are prone to be blocked. In that case, either post to an FTP server, break multiple files into different emails, or try compressing the attachments.
However, some file types don't benefit from compression. Try most methods on an MP3 or JPEG, and you'll get a file size that's roughly where you started. Generally, the file formats that are common online won't be reduced by additional compression: JPEG, GIF, PDF, MP3, AAC, WMA, WMV, and MOV. Those need to be encoded at smaller sizes when being created. Other file types are too small to bother, including Office documents and text files. But compress if you're sending a big file that doesn't fit either category, such as TIFF or RAW graphics, or WAV or AIFF.
And if your attachment relies on nested folders for organization, you'll always need to zip or compress it. Even a single folder that holds a few files requires that treatment; in that case, attach the individual files to the mail message instead of wasting time compressing and decompressing the folder.