This worked great in general but I encountered two problems...fortunately I found solutions/workarounds for both:
1. I'm on a Mac, so I skipped the part about the Windows drivers, but at first the adb push command wouldn't work for me, and I realized it's because the SD card was coming up as read-only. So I reformatted the SD card (MS-DOS FAT) in disk utility.
Later on, I couldn't seem to access any files from /sdcard using the adb shell. It turns out the reason was that when I connected the phone to my computer I selected "Manage memory card," which I guess means Mac OS took control of the drive and it was unavailable to adb. So I chose "modem mode" instead and it worked.
2. When I ran the command:
busybox --install /system/xbin/
I got a bunch of "no such file or directory" errors.
I found a workaround on this page:
Extending Android's shell with BusyBox | Novoda
..the important part of which is to run:
export PATH=/data/busybox:$PATH
busybox
Then just prefix all the cp commands with busybox, like this:
busybox cp /sdcard/Superuser.apk /system/app/
Now on to upgrading the Android OS...