The easiest way to transfer an image is to install both drives onto the same computer. This isn't so easy with a laptop. Read the link I gave in post #10. The post #9 example might work.
There was a recent posting where the moderator gave an example of cat'ing through a tcp pipe. I think that you will be able to use google to search for examples of doing this using netcat as well.
You could also try this:
On the source laptop ( In this example, it's IP address is 192.168.1.100 ):
$ dd if=/dev/hda bs=512 | netcat -l 3333
For the destination laptop :
$ nc 192.168.1.100 3333 | dd of=/dev/hda bs=512
You need to run a live distro on both machines. On the source laptop because it doesn't have linux installed. On the destination laptop because you are overwriting the harddrive and need the drive offline.
The block size I chose is arbitrary. Maybe a different size is better considering that you are going through the network, or it may not be necessary at all.
Because in *nix, everything is a file, the dd command is not even necessary.
Laptop#1: cat /etc/hda | nc -l 3333
Laptop#2: nc 192.168.1.100 3333 >/dev/hda
I think that I would still use dd however. I might also pipe through gzip to add compression. If the drive is only 33% used that could save time for the transfer. If it is full, then I wouldn't bother.
If I were doing this I would use an external drive instead. The longer the transfer, the more likely you would have a failure. And transfering an entire disk image is a very long transfer.
The closest thing I have done like this is save a tar backup of my /home directory to a usb external drive. I used split so that each segment of the tarball was a more reasonable size and below the 2GB limit of fat32. Then I used par2 to add redundancy. I did this before installing a new distro version from scratch. I could extract from the achive by using cat and piping it through tar. This would even work for listing the contents of the archive.