Hrm. Ladyada's instructions (linked in my first post) actually details configuring DTR pass-through with the XBee. That's not working for me, unfortunately. I get the rare successful upgrade, but mostly errors like
avrdude: stk500_paged_write(): (a) protocol error, expect=0x14, resp=0x64
avrdude: failed to write flash memory, rc=-4
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51
avrdude: stk500_getsync(): not in sync: resp=0x30
avrdude: stk500_recv(): programmer is not responding
So, if the hardware reset is what should do the trick, that's not sufficient (for me, at least).
I'm up in Nashua; I might have to check out one of the Dorkbot meetings.