Digital data is almost always transferred from and to buffers. You would be surprised that most of what a computer does (both the hardware and software) involves just moving data around (between devices and subsystems and between variables and registers).
At the low hardware level you will almost always find simple buffers or registers called "latches" to hold the data while it is being transmitted on the bus, or to the receive the data from the bus. You can almost always assume that digital data is temporarily stored in some manner while it is transferred between subsystems, either at the byte/word level (in bus latches) or even for full disk sectors (on IDE/ATA drives) and Ethernet frames (store&forward switches). These "transient storage" capabilities are distinct from any caching capabilities that a subsystem may have.