Here was my old "move Win9x to another drive without horking anything" technique.

Set swap file size to 0.
Boot off the original drive to safe mode.
Get a command prompt
xcopy32 c:\\*.* d:\\ /h /e /c /k

When this is done, swap drives, run FDISK to set the new drive as primary, and boot. Never had this technique fail once for me for all flavors of Win9x, except WinME, which I haven't used it against. YMMV.