I remember vaguely talking about this subject in class and found an awesome article on ways to improve these procedures:
1. Zeros are always unfair.
2. Don't confuse learning with behavior.
3. Grading is influenced by extraneous conditions.
4. Use "weighted" tests.
5. Decide whether you want tests for grading or for learning.
6. Never grade homework.
7. Avoid giving lower achieving students low grades.
There are a few other suggestions, but maybe some of you could visit
http://teachers.net/gazette/MAY02/page.html and read about why these suggestions may be good or bad. It makes a lot of sense.