VB ist in der bisher aktuellen Version 6.0 leider was die Installationsmechanismen angeht sehr sehr eingeschränkt. Da haperts meist schon, dass du nicht weißt, wie du DLLs aufs System schaufeln sollst, wenn du nicht wie ein wilder API-Programmierung in der Registry betreibst.
Das Problem fängt schon an, noch bevor du überhaupt dein neues, tolles Installationsprogramm gestartet hast.
VB vereinfacht vieles, vor allem Eventhandling oder Oberflächengenerierung, dafür ist diese selbstgeschaffene Abstraktionsebene auch so restriktiv, dass du eben nicht alles ganz einfach so programmieren kannst wie du willst und native auf der API rumorgeln, geht in den meisten Fällen eh nur über x Deklarationen und der verzweifelten Suche in den Dokumentation der Win32-API.
Momentan wäre mein persönlicher Favorit hier immer noch C++, da kannst du relativ problemlos eine .EXE-Datei erstellen, die auch noch ohne x mitgelieferte DLLs lauffähig ist. Eigentlich genau das richtige, wenn man ein Installationsprogramm selber schreiben möchte.
Die .NET-Strategie vom Visual Studio wird diese Grenze vermutlich extrem aufweichen, dann ist es sowieso demnächst egal, ob du nun in VB, C++ oder C# programmierst, jedem das, was er am meisten mag.