Jcagle,
my advice was to check for SHLWAPI.dll and if not present require the user to install IE 4 and above. It's far more simpler than checking for the version of Windows and the version of Internet Explorer. By checking the versions you're also assuming you know which versions of Internet Explorer provide SHLWAPI.dll, and you can't be sure of that.
As dajvid said, the Microsoft installer can install different versions of the file for different systems or configurations. It can be Unicode enabled for Windows NT and MBCS for Windows 9x, it could install a certain version for XP that uses new features that are just in XP, etc. If Microsoft didn't supply a redistributable and didn't say it's possible to redistribute the DLL on your own you should probably shouldn't.
In conclusion, the code I'd suggest is:
Function .onInit
IfFileExists $SYSDIR\SHLWAPI.DLL +3
MessageBox MB_OK|MB_ICONSTOP "Required DLL missing, please \
install Internet Explorer 4.0 or above. Bye."
Abort
FunctionEnd
If there are some functions that your program imports from SHLWAPI.dll that are not in all versions of it you should check for its version too and tell the user what to install according to Microsoft supplied information.