I've managed to solve the problem by adding the 64bit libc6 from Ubuntu to ~/.steam/root/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/
It is curious that Steam is using any 64bit libraries at all when being run under i386* and the steam binary itself is 32bit and cannot therefore use those libraries:
$ file -Ls /proc/$(pidof steam)/exe
/proc/395/exe: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 3.2.32, BuildID[sha1]=0x6db168cbb810e5ea0158dab7ac1799c86d7013e0, not stripped
After doing some more debugging I believe that it is an instance of the shell was picking up ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libtinfo.so.5 instead of the system provided version and was failing since the system libc was older than the version that libtinfo was linked against.
Steam itself is indeed only using the 32bit libraries - renaming the 64bit version of libtinfo that Steam provides also solves this issue.
FYI the affected shell instances were:
[pid 19104] execve("/bin/sh", ["sh", "-c", "uname -m"], [/* 39 vars */]) = 0
[pid 19106] execve("/bin/sh", ["sh", "-c", "\"/home/ian/.local/share/Steam/.steam_exec_test.sh\""], [/* 39 vars */]) = 0
[pid 19783] execve("/bin/sh", ["sh", "-c", "/bin/sh -c \"/home/ian/.local/share/Steam/ubuntu12_32/driverhelper.py begin_get_info 'NVIDIA Corporat"...], [/* 35 vars */]) = 0
Other instances that linked against libtinfo picked up the system version and worked.
Hmmm, today I found the steam-runtime directory renamed to steam-runtime.old and the new steam-runtime didn't have the libc I put in it, recreating this issue. Well, the fix is the same, but I wonder how often this is going to happen...
I wonder is perhaps Steam should also distribute a known good version of libc?
comment removed due to inaccurate information
Hmmm... I'm not sure I understand - if Steam is distributing a version of libc it would satisfy the link time version check of the other libraries that Steam is distributing, such as libtinfo and the problem I described wouldn't exist (also, where is it? find ~/.steam/root/ -name 'libc.*' only shows the libc.so.6 that I personally copied there there from Ubuntu's repository).
I was the one who did not properly understand, sorry.
Nothing extracted yet.
Since updating Steam yesterday it lists all my games as not being installed (with the sole exception of Team Fortress 2).
If I click install on any of the games the choose location for install drop down is initially empty, with the only options being create new Steam library on {/,/home,/boot}. If I leave it empty and click next I get the 'you do not have enough disk space available to run the game...' error (I have plenty).
I have not yet tried creating a new library.
If I attempt to open the Steam Library folders in the settings Steam crashes.
Here is the full console output of running steam (with i383, but the output is much the same without it), attempting to install a game as described above, and finally trying to open the steam library folders when Steam crashed. I've annotated the output to indicate when I tried each action. The assertion failure in AddInstallBaseFolder looks suspicious.
And here is my system information: