Собственные MessageBox (с кликабельными ссылками и пр.) можно делать с помощью
DlgHost Plugin_а
http://nsis.sourceforge.net/File:DlgHostPlugin.zip
Пример :
PHP код:

!include nsDialogs.nsh
OutFile "DlgHostDialog-test.exe"
Page custom MyPage
Page InstFiles
Var dlg
Var Link
!ifndef INC__DLGHOST_PLUGIN
!define INC__DLGHOST_PLUGIN 20110619
!define DLGHOST_DLGBOXMSG_INITDLG 0
!define DLGHOST_DLGBOXMSG_SHOWDLG 1
!endif
Function CloseDlgHostDialog
Pop $0
DlgHost::Close
FunctionEnd
Function ShowNSDChildDlg
GetFunctionAddress $0 MyMB
DlgHost::DlgBox "* $0 p 150u 100u Заголовок DlgBox"
FunctionEnd
Function MyPage
nsDialogs::Create 1018
Pop $dlg
${NSD_CreateLabel} 125u 50u 80u 10u "MyPage"
nsDialogs::Show
FunctionEnd
Function MyMB
${Select} $0
${Case} ${DLGHOST_DLGBOXMSG_INITDLG}
nsDialogs::Create 1018
Pop $1
DlgHost::SetClient $1
${NSD_CreateLabel} 5u 5u 80u 25u "MessageBox Txt1$\nMessageBox Txt2$\nMessageBox Txt3"
Pop $1
${NSD_CreateLink} 5u 30u 80u 10u "MyLink"
Pop $Link
${NSD_OnClick} $Link ClickMyLink
${NSD_CreateButton} 25% 60% 45% 15u "&Close"
Pop $1
${NSD_OnClick} $1 CloseDlgHostDialog
${Case} ${DLGHOST_DLGBOXMSG_SHOWDLG}
nsDialogs::Show
${EndSelect}
FunctionEnd
Function ClickMyLink
ExecShell "open" "http://forum.oszone.net"
FunctionEnd
Section
Call ShowNSDChildDlg
SectionEnd
ShowNSDChildDlg вызываете ессно откуда надо и при необходимых условиях.
Содержимое DlgHost.nsh включено в код.