At a guess, you have an ftp client that doesn't automatically set type binary but the BBEdit ftp client does. FTP, being an ancient protocol, defaults to doing text conversion (CRLF to LF, that sort of thing), which is basically never what you want any more, but which was horribly useful when transferring data from record-based systems to byte-stream systems and between systems with different line-ending conventions. If you leave the text-conversion thing on with any file format more complicated than text, though, it corrupts the file.
Re: Computers are weird.