I'm just working on a time tracker prototype ...
Yes, it's important to help the user do if fast, programming the UI to do as mush as possible of the repetitive chores.
My take is similar to msanford's (so I built on his wireframe).
1- The date is due only once, as most of the times the user will be entering today's data. It shows with today's date preloaded, and a noticeable visual confirmation of the day of week, "Monday" in this case, to reassure the user. The user can navigate to the previous or next days using the two arrow buttons at both sides of the date, changing the day commits the data.
2- The rest of the form displays all the selected day's activities, and an empty line to enter more activities. At first there is only one empty line, with focus in its first field (not in the date, which will be right almost always so we can skip it).
3- The "Project" and "Departament" items depend on your company's organization. IMO here less is better. Notice that there is no need to replicate here the organization´s structure. If you talk with those who consume the data and advice them, they might want to insert an abstraction layer furnishing the users with appropriate accounting names so that only one datum is needed that encompasses all the accounting needs. Later on they can translate that names into official accounting pointers.
Anyway, the users here should see not codes but names, in their language.
4- The UI can help the users a lot by pre-loading the Project / Dept / Task (or whatever) fields with the same data from the previous day.
Ideally these fields should work like jQuery UI autocomplete .
5- The hours field is filled faster if it allows the user to type the numbers instead of clicking a spinner. As an additional help, show the total hours for the day somewhere so the user can check if the number is right. A control like Keith Wood's timeentry might be handy because it handles the formatting. I set it without the spinners and the AM/PM part. Users only have to type the numbers and tab forward.
With this arrangement the user that reaches the UI is taken to the current day, with the insertion point in the first accounting input ("PROJECT" in the example).
This field is pre-filled with the same data as previous work day so the user usually tabs to the next field.
The department input is pre-loaded with the same data for the last time the user reported this PROJECT, so it might also be right (pre-load the DEPARTMENT when the focus leaves PROJECT).
The same could be done for "Task" if the users tend to repeat tasks in consecutive days.
If the preloaded data is not right the user needs to type a few keystrokes to put the autocomplete to work. The pre-loaded text has to be selected, so it will dissapear when the user starts typing in the field.
The hours are completed by tiping like 8tab30tab.
Now the user in in the "Comment" which tends to be optional.
One more tab and she is in the [+] button (The [x] buttons are not in the tabbing sequence).
This is as fast and safe as it can be.