On Windows you can theoretically restrict software from running via Group Policies or Software Restriction Policies (easier tutorial here).
This only works if their user account is a Limited one (non-admin), and you have to disable potential workarounds as well (command prompt, etc.). If you’re using SRP, you want to use the hash check method so they can’t simply rename files to make them run.
At the simplest level, Windows 7 includes Parental Controls which can do similar things with much less hassle, but IE is whitelisted by default for some reason… there may be a way around that, but I’m not sure.
On Linux, perhaps you can use user/usergroups permissions to limit execution of anything except what you specify? I’m not sure.
As for net filtering, it’s pretty much worthless unless you’re willing to do it with a whitelist (meaning ALL sites are blocked by default and only certain ones that you exempt can be accessed, as opposed to a blacklist where all sites are available by default and only certain ones are blocked). Due to the abundance of proxies, VPNs, scripts, etc., blacklist filters are worthless against any savvy user or teenager.
You should also filter traffic on the router such that during restricted hours, ALL ports (inbound and outbound, TCP and UDP) are blocked except email ports (POP3/SMTP/IMAP) and whatever Dropbox uses. Note that this will block Firefox’s web browsing during those hours as well, which I’m not sure you want.
And you should probably back up your technological defenses with physical security, whether that’s locking up your hardware in a closet, employing discipline, getting legal on their asses, etc., depending on the situation.