(a) Even if you have an old PC...
With a BIOS that cannot boot USB...
Provided the PC has a FDD...
Every Puppy/puplet of Puppy Linux provides an easy means ["Puppy Universal Installer"] to install to a USB Flash drive [I think also to a USB HDD].
It also provides an easy means [the WakePup2 program] to make a bootable floppy that automatically seeks and loads any Puppy installed on a connected USB drive.
Puppy really doesn't need a HDD at all, but can work with it if you choose.
It's able to easily mount and then browse [and act upon] all of the contents of all connected storage devices.
[External/internal HDD/FlashDrive, optical disks, floppy disk].
Puppy is FASTER than Windows on any given hardware, and practically impossible to infect, so little/no need for all the usual Windows anti-malware protection.
I find myself more and more inclined to work within Puppy rather than Windows.
(b) I've installed a Puppy to a USB Flash Drive, and use a WakePup2 floppy to boot that and found it easy to do and it works with no problems.
I'm typing this from Firefox run within BoxPup Linux installed to a 2GB Linux partition on my PC's internal HDD.
I have multiple Puppies available to run, and so could you.
e.g. Use Puppy1 to fix/backup/restore Puppy2 to fix/backup/restore Windows.
2. You could use such a Puppy to do all the work necessary to:
(a) Move [almost] all the data files off the Windows partition, so as to make it "lean & mean", then [use GParted to] non-destructively reduce the size of C: to make it a good fit to its contents [with about 25% free space].
(b) You can use various programs run within Puppy to...
Move files around, to perhaps external [USB?] storage.
Non-destructively rearrange/resize partitions.