Explanation
Conditional formatting is applied to all cells in the active selection at the time a rule is created.
In this case, the column references are locked to prevent columns from changing as the formula is evaluated, but the row references are relative so that row numbers are free to change. The result is a formula that applies exactly the same logic to every cell in the same row.
If COUNTBLANK finds any blank cells in a given row, it returns a positive number, which Excel evaluates to TRUE, triggering the rule.
If COUNTBLANK finds no blank cells, it returns zero, which is evaluated as FALSE, and the formatting is not triggered.
Explanation
The AND function takes multiple arguments and returns TRUE only when all arguments return TRUE. Dates are just serial numbers in Excel, so earlier dates are always less than later dates. In the above formula, any dates that are greater than or equal to the start date AND less than or equal to the end date will pass both tests and the AND function will return TRUE, triggering the rule.
References to the start and end dates (C2 and E2) are absolute and will not change. References to the date in column C are “mixed” — the column is locked, but the row number is free to change.
Without named ranges
This formula refers to two named ranges: start (C2) and end (E2). Without using named ranges, the formula would look like this:
=AND($C5>=$C$2,$C5<=$E$2)
Embedding dates
This formula exposes the start and end input values directly on the worksheet, so that they can be easily changed. If you want to instead embed (hard-code) the dates directly into the formula, the formula would look like this:
=AND($C5>=DATE(2015,6,1),$C5<=DATE(2015,7,31))
The DATE function ensures that the date is properly recognized. It creates a proper Excel date with given year, month, and day values.