the password has to be at least eight characters, have one capital and two numbers, doesn't that give the hacker too much information on all of my user's passwords?
Let's see. Ignoring punctuation (since not many people bother to put any in their passwords unless forced to), there are 62 characters that commonly appear in passwords. Some more commonly than others, of course, since most passwords aren't randomly generated.
Let's compare what happens if we just say "minimum 8 characters" compared with what happens if we make the additional restriction. Let's also assume the worst case password, that's only as long as the minimum.
The number of possible passwords if any combination of characters is allowed, is 62**8
, which is 2.2 * 10**14
The number of possible passwords with the restriction of one capital and two digits is (um, I'm not great at combinatorics) more than 62**5 * 26 * 100
, which is 2.4 * 10**12
.
So the attacker certainly has more information: the total space of passwords is 99% smaller. But is it too small? Is it likely that this difference in size, 2.4 trillion vs 220 trillion, will make the difference between an attacker brute-forcing the password and not doing so?
Probably not. And even if it is the difference, you can get most of the space back just by requiring 9 characters instead of 8. So you are not increasing the risk for users who understand what they are doing and choose strong passwords.
I'm not entirely convinced myself that requiring capitals and digits in passwords is the best way to strengthen them, but if it prevents users from using a dictionary word, you've put some kind of hurdle in the way of attackers. You've eliminated the worst passwords from that space, which means you have (hopefully) made "the easiest password to guess" on your site at least somewhat harder to crack. And that's about all you can hope to do with these simple restrictions on passwords.
You do have to think a bit about your threat model. For example, there is a period of time, and I don't know for sure whether that period is past/present/future, during which a 2 trillion entry rainbow table is computationally feasible but a 200 trillion rainbow table is infeasible. I suspect that period lies in the past for the most able attackers on the planet, and in the future for the average cracker, but that whenever it occurs this era of history is a short one and therefore you don't want to base your website's security on the assumption that it is in the present for your actual attackers.
Now, would applying different password criteria to different users be better? It would, if an attacker is applying an attack that benefits from the smaller password space. But if any of the restrictions is weak ("more than five characters and have two numbers" being the weakest in your list of examples), then that will still allow some users with weaker passwords than if you just used the strongest restriction for everyone.
So basically no, I don't think applying at random one of several criteria of equal worth won't do any significant good. The very best it could possibly do is multiply the size of attack needed, by the number of different criteria you choose from. That's if the different rules produce completely non-intersecting spaces of passwords, so actually it won't be that good.
Requiring a capital letter or a digit is pretty much a psychological trick to encourage your users to choose non-dictionary passwords, and maybe to make the user think a bit about what they're doing. If it works, that's great, and it will work whether you apply the same rule to everyone or not. The space of permitted passwords is pretty much irrelevant compared with the space of passwords that your users actually think of and use.
If you want to stop your users choosing weak passwords, be sure that your restrictions, however they're applied, block the most commonly-chosen passwords (http://gizmodo.com/5954372/the-25-most-popular-passwords-of-2012, https://xato.net/passwords/more-top-worst-passwords/). Those are certainly among the first that any brute-force attacker will try. Many of those contain digits. It's not possible to tell whether they contained capital letters because the researcher has lowercased everything.
It's fairly important to note that according to the researcher 91% of exposed passwords fell into the top 10k (case-insensitive). So even allowing for one capital letter in each password, and an average length of 6.3 characters, an attacker can brute-force 91% of accounts in 63k guesses. If you allow users those passwords, it would take something of the order of a day to find it in an online attack from a modest botnet if you're lucky. A few seconds in an offline attack against a list of securely hashed and salted passwords.
Getting rid of those most-common passwords is absolutely necessary to make it hard for attackers to brute force. The exact size of the password space is far less important.