Just to add to the list - this is what I had to do to get my Thinkpad to update.
I was rooted, and had CWR installed. I downloaded the ICS update from Lenovo's Website (http://download.lenovo.com/slates/think/tablet1) file was (http://download.lenovo.com/slates/think/tablet1/ThinkPadTablet_A310_03_0069_0130_US.zip). I was getting an indigo check error right away though when trying to flash.
I knew that I had to update the updater-script from META-INF\com\google\android\ in the zip file. Ultimately I totally removed the following lines from it:
assert(file_getprop("/system/build.prop", "ro.build.fingerprint") == "Lenovo/ThinkPadTablet/Indigo:3.1/ThinkPadTablet_A310_02/0039_0089_US:user/release-keys" ||
file_getprop("/system/build.prop", "ro.build.fingerprint") == "Lenovo/ThinkPadTablet/Indigo:4.0.3/ThinkPadTablet_A400_03/0069_0130_US:user/release-keys");
assert(getprop("ro.product.device") == "Indigo" ||
getprop("ro.build.product") == "Indigo");
I first tried doing this with Notepad++ on windows and ultimately got an error 6 when trying to flash. Luckily I have an Ubuntu (a type of linux) machine laying around and was able to edit the file within the zip using Ubuntu. I copied the ThinkPadTablet_A310_03_0069_0130_US.zip to my network, opened it up in Ubuntu, navigated to META-INF\com\google\android\ and opened updater-script. After removing those lines listed above, I closed out of Gedit and had a prompt asking if it should update the zip. I hit yes and that is the file that worked for me. If you don't have access to a linux machine it may be easy enough for you to make a live CD (https://help.ubuntu.com/community/LiveCD) that will allow you to boot into Ubuntu and not affect the OS of your computer. You could put your update zip file on a thumbdrive, boot the live cd, and edit it that way. Ubuntu is free and everything you need to update your zip should be included on the live CD (zip utility and a text editor).
With my new edited update.zip I started to flash, got much further and then bombed on busybox. I got the busybox file from this post (http://forum.xda-developers.com/showthread.php?t=1741623) file was (http://dl.dropbox.com/u/6846397/Original/busybox). I copied to my thinkpad and moved it to /system/xbin using Root Explorer (I've been an Android user since the G1 and made it this far without Root Explorer but bought it just for this - that App works great and you should get it). If you get an error that you can't write the file hit the Mount R/W at the top (and its always a good idea to rename the original so you have a backup).
At this point I backed up root with Voodoo OTA Rootkeeper, disabled root, rebooted into CWM and flashed my update. Finally things went smooth, i rebooted into ICS and used Voodoo Root Keeper to restore root.
Something else to note is that if you have a root file explorer (and root) you can browse to /cache/recovery and open the last_log file if you are still getting tripped up to see what is failing.
Now I am updated to ICS, restored root, and lost CWM. Hope this helps some of you guys that are stuck. What a pain this was.
I was rooted, and had CWR installed. I downloaded the ICS update from Lenovo's Website (http://download.lenovo.com/slates/think/tablet1) file was (http://download.lenovo.com/slates/think/tablet1/ThinkPadTablet_A310_03_0069_0130_US.zip). I was getting an indigo check error right away though when trying to flash.
I knew that I had to update the updater-script from META-INF\com\google\android\ in the zip file. Ultimately I totally removed the following lines from it:
assert(file_getprop("/system/build.prop", "ro.build.fingerprint") == "Lenovo/ThinkPadTablet/Indigo:3.1/ThinkPadTablet_A310_02/0039_0089_US:user/release-keys" ||
file_getprop("/system/build.prop", "ro.build.fingerprint") == "Lenovo/ThinkPadTablet/Indigo:4.0.3/ThinkPadTablet_A400_03/0069_0130_US:user/release-keys");
assert(getprop("ro.product.device") == "Indigo" ||
getprop("ro.build.product") == "Indigo");
I first tried doing this with Notepad++ on windows and ultimately got an error 6 when trying to flash. Luckily I have an Ubuntu (a type of linux) machine laying around and was able to edit the file within the zip using Ubuntu. I copied the ThinkPadTablet_A310_03_0069_0130_US.zip to my network, opened it up in Ubuntu, navigated to META-INF\com\google\android\ and opened updater-script. After removing those lines listed above, I closed out of Gedit and had a prompt asking if it should update the zip. I hit yes and that is the file that worked for me. If you don't have access to a linux machine it may be easy enough for you to make a live CD (https://help.ubuntu.com/community/LiveCD) that will allow you to boot into Ubuntu and not affect the OS of your computer. You could put your update zip file on a thumbdrive, boot the live cd, and edit it that way. Ubuntu is free and everything you need to update your zip should be included on the live CD (zip utility and a text editor).
With my new edited update.zip I started to flash, got much further and then bombed on busybox. I got the busybox file from this post (http://forum.xda-developers.com/showthread.php?t=1741623) file was (http://dl.dropbox.com/u/6846397/Original/busybox). I copied to my thinkpad and moved it to /system/xbin using Root Explorer (I've been an Android user since the G1 and made it this far without Root Explorer but bought it just for this - that App works great and you should get it). If you get an error that you can't write the file hit the Mount R/W at the top (and its always a good idea to rename the original so you have a backup).
At this point I backed up root with Voodoo OTA Rootkeeper, disabled root, rebooted into CWM and flashed my update. Finally things went smooth, i rebooted into ICS and used Voodoo Root Keeper to restore root.
Something else to note is that if you have a root file explorer (and root) you can browse to /cache/recovery and open the last_log file if you are still getting tripped up to see what is failing.
Now I am updated to ICS, restored root, and lost CWM. Hope this helps some of you guys that are stuck. What a pain this was.