I've been wrestling with this issue too and here's what I have come up with:
I had to first put the iPhone in DFU mode before it would actually replace the problem files, doing a regular restore didn't fix it in 3 tries.
Instructions for DFU mode are here or can be found on Google of course:
http://www.iclarified.com/entry/index.php?enid=1034Also I found out that iPhone OS 3 does not play well with WEP wireless security. Changing to WPA improved it's connection considerably, including it's range. BTW, if you have an old iBook or something like I do, it won't support WPA2, also known as WPA-AES. My old clamshell will support WPA which is also known as WPA-TKIP, which seems to work fine with the iPhone as well. WPA2 is reportedly about 10-20% faster if you can use it.