http://bugs.winehq.org/show_bug.cgi?id=6297
--- Comment #19 from Stefan Dösinger stefandoesinger@gmx.at 2007-09-05 07:21:05 --- Maybe this bug should be closed WONTFIX.
I think that this is a problem of Linux's disc caching behavior and hl2's timing. When preparing to start a game, Steam unzips a lot of files from its data files to the steamapps/<username>/<gamename> directory, even if they already exist. Linux caches the disk write, thus the unzip is fast. When the game starts up, Linux starts to write the chache to the disc, propably because the longest possible cache time is exceeded(there's a high risc of data loss if the cache isn't written back, should the power fail between write and flush), or because the game allocates memory and Linux needs the cache's memory elsewhere.
Now I think that steam expects the files to be written before it closes the "Preparing to Launch ..." Window; When the app starts, it gets delayed a few secounds because the disc is busy writing lots of data(183 mb here it seems). If the delay becomes too big, some game-internal timer times out.
That's just my thought about that issue, I haven't done a scientific investigation of the issue. Setting the sync flag seems to fix it everywhere so far, but it could negatively affect loading times, and it will be quite bad for power usage if you're downloading games with Steam on a laptop while you're on battery because the hard drive can't shut down because write caching is deactivated for that directory(so by-by laptop-mode settings).