Windows SDK: Why do samples install to /Program Files, even on Windows Vista?

One feature of Windows Vista that deeply affects setup is the tight control of files in the Program Files directory. For secuirty reasons, files in that directory tightly controlled in terms of how and when they may be modified. This caused a bit of a problem for the SDK, though, since we install all files to C:\Program Files\Microsoft SDKs\Windows\v6.0 by default, including samples. By nature of what they are, samples get modified. So what to do? Do we create problems for users by placing them in Program Files by default, or do we install the SDK to multiple directories, which causes other problems?

We had a pretty good amount of internal debate as to where samples should be installed for users by default. The feeling that we eventually came to was that it would seem strange for the SDK to be installed to two completely different locations by default. Users would expect all SDK content to be located at C:\Program Files\Microsoft SDKs\Windows\v6.0, and it might seem strange or awkward for everything but the samples to be at one location and only the samples at another location.

Of course, there is a significant loss of functionality for users on Windows Vista due to this, and that's why we introduced a second directory browse box in the Install Locations screen in setup. That way users could deliberately choose to override the default install locations and put the samples in a place in which they could modify them.

We talked about a whole range of other solutions to this problem, everything from putting a simple xcopy batch file in the user's /samples directory to building a full new samples browser to sidestep the issue. But, frankly, none of these really grabbed team members as viable ideas for our users.

In the end, we decided to simply add the second directory browse box, and it seems to be a solution that our users have found acceptable. Since this change went live in one of our CTP releases several months ago, over 250,000 installs of the SDK have happened according to webmetrix. We haven't received any user questions or complaints about this decision.

Moving forward, this really isn't on the table as something we're planning to change at this point. If we start getting user complaints, we'll definitely revisit it. We're also planning on adding a datapoint to our SQM data collection to see how many users choose to change their install directories.

What do you guys think? What's the best solution to this problem?