Twice I tried to update iPhone 3G firmware using iTunes 7.7 running on 64-bit Windows Vista, and both times I was getting cryptic error with code (-1) somewhere in the middle of the process. Oddly, firmware would seemingly get upgraded before the crash, but I would still have to restore the iPhone from the backup - a process (was buggy on its own) that would not restore the applications I installed from Apple app store.
Thankfully, after I got iTunes 8, my latest upgrade to 2.1 version of iPhone software went without a problem. 2.1 was worthy upgrade: the most obvious change was improved battery life.