If I'm forced into using automated FTP, I have the sending party PUT the datafile, and afterwards PUT a checkfile, containing at least the name of the datafile and the number of records. So I can verify at the receiving end that the received file contains the correct number of lines. Pretty basic as it is, but better than nothing.
On sending a file, I verify the ftp status codes e.g. check for "226 Transfer complete"
Also I do a dir on the file I just PUT to check if the file is newly written and has the correct number of bytes. Note: account for NL to CRLF conversion: 1 byte extra per record if sending from unix to windows, other type of servers may result in other conversions, so you need to experiment a bit...
HTH,
p5wizard