Do you know that you can actually scheduled certain apps to be run at certain time? For example, you can add scheduled tasks like auto soft reset at certain time of the day, auto clear temp files at certain time, etc.
There are several options for scheduling:
1) Schedule at certain time.
2) When a Storage Card has changed (removed/inserted, etc)
3) A full restore has completed.
4) A RS232/USB connection was made
5) Data synchronisation has finished (but still connected)
6) The system time changed.
7) The time zone changed.
8) The device woke up (power on)
These are actually parameters to enter into the Notification Queue. I suppose for most users, only the first option is most useful.
To make it simple, Kaisoft actually has some software which automate (schedule) turning off or performing soft reset:
Kai's Auto Turn Off.Net
Kai's Auto Softreset .Net
There is also another software which has power off, soft reset as well as scheduling features. And it's a freeware. Check out psShutXP here.
To have more flexibility in choosing which app to run under which schedule option, you can actually use tools like MemMaid to add a scheduled task to the Notification Queue.
Alternatively, there is a freeware for running batch jobs. It's not as easy to use as the apps mentioned above. You can find out more about MortScript here.