Steam and Half-Life 2 have a utility that dumps debugging information when either crashes and this is what uses msvcr70 and the dbghelp functions. Turn on +seh logging and you'll likely see a STATUS_ACCESS_VIOLATION before this.
With the newest patches on d3d, this is no longer the problem - the problem is that HL2 runs out of memory on startup and the OOM killer takes it out. So, it does seem like there is a memory management problem after all..