Why don't you have it set as a prerequisite that downloads from the vendor's site? Then it will just use the Microsoft bootstrapper and install just the extra bits that the user needs rather than downloading the whole thing.
The other thing you can do is deploy the Client Framework, if your application will build with it. If the user has no version of .Net installed, it will install the Client Framework. If he has any version of .Net installed, it will install the entire 3.5 SP-1 Framework. Again, from the vendor website.
Is there some reason you want to deploy it yourself?
RobinDotNet
Click here to visit my ClickOnce blog!