How about using the net user command to restrict login times. It works in XP, not tried Vista but I assume it'll do the job.
Let’s suppose the account for which we want to define the time interval access already exists. The command will look like this:
net user "user account" /time:M-F,14:00-16:00
Replace the text between the quotes with the desired account. Using the above command line, the user has rights to access its account between 14 and 17 every day from Monday to Friday. In case your son/daughter comes home from school around two o’clock he/she will be able to logon until 16 o’clock (when you come back from work).
Please notice that only sharp values are accepted. You can choose any hour but not subdivisions like 14:15 or 15:36.
You can even setup time intervals for different days as following:
net user "user account" /time:W,10am-5pm;T,2pm-3pm;F-Sa,9:00-16:00
One more thing, the week days’ abbreviations are M, T, W, Th, F, Sa, Su.
If you dont like command line stuff, you can do similar by going to the vista help menu then Parental Controls which will give you a nice GUI that does pretty much the same thing.
Make sure the kids user account just has user priveledges or they will figure out a way to undo this pretty quickly.