これを個々のテストに分解すると、次のようになります。
- コーディングしやすい
 
- 読みやすい
 
- メンテナンスが容易
 
- 要件が変更されたときの柔軟性
 
次のようなことを試してください:
var testPassword = function (password) {
    var minLengthMet = password.length >= 8,
        hasUpper = (/[A-Z]+/).test(password),
        hasLower = (/[a-z]+/).test(password),
        hasNumber = (/[0-9]+/).test(password),
        letterBegin = (/^[A-Za-z]/).test(password),
        noSpecials = !(/[^A-Za-z0-9]+/).test(password);
    return minLengthMet && hasUpper && hasLower && hasNumber && letterBegin && noSpecials;
};
ここで実際の動作を確認してください: http://jsfiddle.net/H9twa/