In my view, you don't care that the user typed it right, but that it's converted to Uppercase first letter, then lower case rest? So rather than tell the user he's wrong, you can get there from here, right?
Assuming that's OK, have a look at:
By combining the two functions, as shown in the PHP docs, look at the final line below.
$bar = 'HELLO WORLD!';
$bar = ucfirst($bar); // HELLO WORLD!
$bar = ucfirst(strtolower($bar)); // Hello world!
This is how I read your question. Other possibilities include using regular expressions, etc., but I feel these functions fit your need. If I misunderstood, give me another shot by explaining where this is off.
As an aside, by using the BINARY keyword in a MySQL query, you can make case matter (case sensitive) when executing a query. So, if you'd ever find yourself having to see if a user keyed a case-sensitive password into a form correctly, BINARY might help you out there.