I checked the code, and noticed two possible problems..
1) The use of 'System.capabilities.version' won't work for Flash Players of version 5 or lower.
2) You're using a substring to pluck out the major version of the version string. This is fine when the version string begins with 'WIN' or 'MAC' (3 letters), but what about if the version string starts with 'UNIX' (4 letters)?
By coincidence, I was just fooling around this morning with version checking code myself, and wrote this..
versionstring = undefined;
versionstring = getVersion(); // Flash 5 or higher
if (versionstring == undefined)
trace("Pre-Flash 5.. time to upgrade!");
majorversion = Number ( (((versionstring).split(" ")).split(",")) );
if (majorversion >= 8)
trace("You have Version 8+!");
Finally, I didn't find the code that matched the current version with the version you wanted, but this part worries me.. "Just don't try to change it to a lower version like 7 or 6, because people with version 8 won't be able to downgrade to those making them never be able to view the Flash."
Does that mean that when people eventually move to Flash 9, a checker configured for Flash 8 will stop working?