Per il primo quesito dovrai utilizzare una Sub Main(), posizionandola dentro un modulo:
codice:
Module Module1
    Public Sub Main(ByVal CmdArgs() As String)
        Dim ArgNum As Integer                   ' Index of individual command-line argument.
        If CmdArgs.Length > 0 Then              ' See if there are any arguments.
            For ArgNum = 0 To UBound(CmdArgs)
                ' Examine CmdArgs(ArgNum) for settings you need to handle.
            Next ArgNum
        End If

        Dim f As New Form1
        f.ShowDialog()
    End Sub
End Module
Ovviamente occorre impostare le proprietà del progetto in modo tale che il programma venga avviato con questa sub: utilizzare il menu Progetto/Proprietà per accedere alla finestra delle proprietà del progetto, fai click sulla voce Generale e cambia le impostazioni nella casella denominata "Oggetto di avvio", scegliendo l'opzione "Sub Main".

Per il secondo quesito: se non utilizzi componenti COM (OCX e ActiveX) non ti serve altro che il framework .NET e il file eseguibile del programma, più eventualmente gli altri file accessori che hai previsto in fase di progetto (file di configurazione, database, eccetera). Se invece utilizzi uno o più componenti COM ti conviene creare un progetto di installazione, che provvederà ad effettuare le opportune registrazioni nel file di registro del sistema.