Basically what is going on is at the start of our programs installation it checks to ensure that the client has .net4 full on their system, if not, then installs the bootstrapped file. However on some systems it seems that rather then install the file, the installer just keeps on going.
For now I will post the section dealing with dot net, if needed I can post more.
Section ".Net" SEC01
SetOutPath "$INSTDIR"
SetOverwrite ifnewer
; Begin Check .NET version
StrCpy $InstallDotNET "No"
${If} ${DOTNETVER_4_0} HasDotNetFullProfile 1
StrCpy $InstallDotNet "No"
${EndIf}
${If} ${DOTNETVER_4_0} HasDotNetFullProfile 0
StrCpy $InstallDotNET "Yes"
${EndIf}
; Get .NET if required
${If} $InstallDotNET == "Yes"
MessageBox MB_YESNO "Microsoft .NET 4 is required to run this application. Install the Microsoft .NET Framework 4 Redistributable?" /SD IDYES IDNO endNetCF
File "..\..\Redist\dotNetFx40_Full_x86_x64.exe"
ExecWait "$INSTDIR\dotNetFx40_Full_x86_x64.exe"
${EndIf}
endNetCF:
Delete "$INSTDIR\dotNetFx40_Full_x86_x64.exe"
SetDetailsView show
; Install Files
; save install location
WriteRegStr ${PRODUCT_DIR_ROOT_KEY} "${PRODUCT_DIR_REGKEY}" "InstallLocation" "$INSTDIR"
SectionEnd