Cloning between drives directly will clone the partition table. This is problematic because the new drive will appear as having a partition that is larger than the drive in this case. Cloning raw data is even more problematic because there is no guarantee that the files are condensed on the first 128 gigabytes of the larger drive.
The safest thing to to is to partition the new drive with a dedicated tool instead of cloning partition tables and after that transfer all files by copying files as one would casually or by means of an image.
When you work with filesystems native to linux, the simplest solution is to format the target drive according to needs and rsync whole file systems over to the new partitions. The final step is to copy the MBR (first 512 bytes of a hard drive).
With NTFS, there is
ntfsclone from the ntfs-3g package that could be used to make snapshots. Beware though, that you will likely have problems booting after restoring an image to a new partition. The manual page of ntfsclone explains why.
The easiest way to make a Windows installation bootable again after cloning is to run the installation and selecting the "Repair Windows" procedure. Although on most simple (one hdd - one partition) setups, cloning the MBR with dd should do the trick.