1. Grades should be a continuum (percentage), not bins (A, B, C,..). "When you are forced to discretize into a small number of bins, injustice is inevitable." Report cards have no rational reason for not being an aggregate of numbers rather than low resolution numbers (letters).
The crux of the justification given for enacting these policies students hate is that students need motivation; their human nature, even given a clear end goal, is not enough for most of them to learn at the required pace without intermediate and forced goals. Of course this leads into the problem of carefully interpreting assignments to do as little work as possible, and lowering the quality of all student's experience to make assignments painfully clear.
All this leads so naturally back into the temptation to loosen standards of the class. If students are going to lazily and disingenuously complete assignments, they will not learn, and it should reflect on their exam grades - but making every student perform the same problems every time will waste half the students time if your assignments are catered to the slowest learners - the fastest learners will feel completely patronized and waste the most time. Don't punish your best students.
The real solution is breaking up classes. One class as a monolithic, multi-month, atomic unit causes problems. Each intermediate exam should serve to split the class into many smaller classes, which can be failed and retaken modularily. In fact, students should decide when they want to take that modular class's exam, and can stay in or attempt to test out at their discretion. Now all of the sudden the relationship between doing assignments and performing on these intermediary tests is tangible, and need not be forced through forced assignments and over-specified instructions. Students can still be required complete a final exam encapsulating all material from each modular class (longer re-test periods could be applied if need be), and if they performed poorly students would have the option to retake those modular sections to build up a more robust understanding.
This has other benefits as well: pre-requisites can be much smaller, and more specific pursuits of knowledge can have constructed an express course of just the strictly necessary modular courses from each full course. Students wanting complete understandings can always go back and pick up where they left off.