http://bugs.winehq.org/show_bug.cgi?id=20110
--- Comment #2 from Hans Leidekker hans@meelstraat.net 2009-09-22 08:47:58 --- So the target directory is overridden by a custom action which is run if the condition 'NOT Installed' is true. We currently set the installed property (twice!) so the action won't be run.
If I hack my way past that the installer aborts again trying to copy vcsetup1.cab, vcsetup.msi and baseline.dat from C:\Windows\Installer to C:\Program Files\Microsoft Visual Studio 8\Microsoft Visual C++ 2005 Express Edition - ENU
That source directory is suspect, it's were the original database is loaded from but it doesn't contain these source files which are referenced from the database.
As a workaround I copied the files in the opposite direction (yes, they already exist) which allows the service pack installer to run to completion.