Currently the implementations within Active Directory, SAP and other systems and applications use a mismatched set of criteria. For example AD can except a special character as the first character of a password, but SAP can't. Given the number of systems and wanting to use a common Password Reset tool (which has its own quirky implementation) leads to adopting a Least Common Demoninator approach.