There were a couple basic strategies I remember employing for migrating data from one PC to another. The simplest of these was just moving disks from one PC to another. For small volumes of data, this could be done with built-in DOS commands (copy, etc.). For larger volumes of data, it was useful to use tools like ZIP and ARJ that could create coherent multi-floppy archive images.
This was actually how I got my first copy of Linux... I found/downloaded disk images using telnet and FTP on my university's lab of 286 PS/2 machines, and then took the images home to install on my personal PC.
For faster and more efficient PC-to-PC transfers, there were also options like Copy 2 PC. In current terms, the best way to think of this is as something like a TUI version of rsync. You connect two machines together, select what you want to copy, press the button, and go. The inter-machine connection was either a null-modem cable or a parallel port link over a custom cable that was shipped in the box with the software. (Certain parallel ports could do, IIRC, bi-directional 4-bit-per cycle transfers that were much faster than a null-modem Serial connection.)
For cross-platform transfers, the generally easiest mechanism was to use a network connection of some sort. This ranged in complexity from a simple null-modem link between two machines, to a modem connection, to full-fledged networking like we know today. For serial links, Kermit was standard, but slow... the BBS community ran through a series of progressively more efficient download protocols. XMODEM was one, but there were also YMODEM, ZMODEM, JMODEM, and others... These typically gained their efficiency by changing buffering paramaters, tweaking the handshaking, adding compression, etc. One other useful feature was the ability to resume a failed download mid-stream. That way, if you had to disconnect the phone line or otherwise lost the connection, you could pick back up where you left off rather than starting from scratch.