This isn't a suggested scenario.
From MSDN, "You cannot use a Windows Installer package (MSI) to deploy a VSIX package. However, you can extract the contents of a VSIX package for MSI deployment. This document shows how to prepare a project whose default output is a VSIX package for inclusion in a Setup project."
Here are some pages with more information:
MSDN page
VS Blog
MSDN Forum
Adding more information about how you could accomplish this:
You can't use the vsix itself, but you can unzip it (just rename the vsix to zip) and add all of the files to your MSI manually. As it says on the VS Blog, you need to make sure that you include the vsixmanifest file (it should be in the vsix) and make sure that you set the "InstalledByMsi" property to true. If you have a pkgdef file, make sure you include that as well.
Again, as it says on the VS Blog, all of these files should be installed to
"%VSInstallDir%\Common7\Ide\Extensions\Your Company\Your Product\Version"
(And you'll need to replace %VSInstallDir% based on the actual location.)
You asked:
How to put some files in non special folders using visual studio installer.
Vsix packages installed by the standard vsix installer will always put all of the files under the same folder in "%VSInstallDir%\Common7\Ide\Extensions...", but because you're using an MSI, you should be able to put other files in other places if you want.
I haven't tried this myself, but I've worked with vsix quite a bit.
I hope this helps!