Problem solved, and more importantly, I discovered at least part of the cause of all this.
After I made my initial post I realized I had also installed SR2 to my laptop, I just never played it because the performance wasn't that great. Fired that bad boy up and ran into the same exact problem, no controls besides WASD movement. This was interesting because I had shown the game to a friend less than a year ago, and it worked fine aside from the speed bug.
So here I was, with a game that didn't work on two machines but it had worked fine in the past. The game itself obviously hasn't been updated in eons so I could rule that out as a culprit, and while I've had Windows updates break games in the past, if that had happened it would have affected a lot more people and thus there would be a workaround posted somewhere. I could even rule out hardware compatibility issues, since I had the problem on two computers with different hardware, so it wasn't like an issue related only to AMD, Intel, ATi, or Nvidia. It had to be something else.
That's when I started thinking about those three files: profile.dat, input.bin and settings.dat. Where were they located? In the same folder with all the game saves. What else goes on in that folder? Well... Steam Cloud synchronizes them. Aha!
On the laptop I went and disabled the Steam Cloud sync, then just to be thorough I deleted the entire THQ/SR2 folder: (x:\Users\[Profile name]\AppData\Local\THQ\Saints Row 2). Obviously this got rid of my save games but since I was starting over anyway, it didn't matter. If you're trying to fix this yourself, you may be able to get away with just deleting the three aforementioned files, but I did not test this.
To cover all my bases I did a not-so-quick verify of the game through Steam. You can probably skip this and in my case, all files checked out.
Ran SR2, started new game. Everything works!
Interestingly, the game only regenerated profile.dat, so I copied that from the laptop over to the desktop and relaunched both Steam and SR2. It detected a cloud save conflict since I hadn't disabled the cloud on the desktop, but I chose to overwrite the cloud save with the local file from the laptop. Once back inside SR2, the game worked just fine as it did on the laptop.
I can't say for certain what started the problem, I'm guessing the profile.dat became corrupted somehow and the Steam Cloud was causing this corrupted profile.dat to be copied to every fresh installation.
Skip here if you don't care about my babbling and just want to know how to fix it.
In summary:
1. Disable cloud saving in Steam.
2. Delete profile.dat (and possibly input.bin and settings.dat, if not the entire folder) from x:\Users\[Profile name]\AppData\Local\THQ\Saints Row 2
3. Run SR2, start or continue a game, and enjoy the fact that you can now actually control your character.
4. (Optional) You can exit and re-enable cloud saving if you like, just make sure when prompted you overwrite the cloud file with the local one and not the other way around, or you'll be back to square one.
Hope this helps at least one other person, and thanks to etayorius for pointing me in the right direction.