The predicates have no notion of case sensitivity. So if you pass in a value 'Foo' and also a value 'foo' and you use it in a predicate on a case sensitive db, it will give different results. On a case insensitive db, it will give the same results.
The case-sensitive collaction property is meant to signal that the predicate is to be used in a case sensitive collaction environment, and you want to mitigate that fact, so UPPER() is added to make it act as if case insensitive. The property name is perhaps a bit ambiguistic.
What you want can only be achieved with a case sensitive collaction (as the filtering is done by the db, which thus means it has to use case-sensitive logic). In sqlserver you can achieve case sensitive collations by defining them on the catalog, table or field. So if you give your password field a case sensitive collation it should work without you changing any llblgen pro query code