Okie, based on this information I would guess the following...
You are creating an object in your application on start event. You could be creating it in the session on start and storing it in the application space though.
The permissions used to create the object are based on the user that is connected to the system at the time. If a user comes in without the necessary permissions then the creation of the object fails.
If a user has the necessary permissions the object creation succeeds.
Once the object is created it is used across the entire application so the users that do not have the permission to create the object can work properly.
Overnight there will be something happening to release drop the application, this is normanly an IIS restart or something similar. Alternatively the object that was created could be linked to the session of the user that created it and once that session ends it kills the object (not sure if this is valid as I would expect that the object, once in Application scope, would remain for the life of the application).
The permissions error could be on a folder location or on a registry key entry.
You should be able to replicate the event but taking the site down and making sure the first person to sign in does not have admin rights. Once you can replicate the event you can chase down the root cause using process monitior (
Process Monitor) which will show all failed attempts on files and registry entries.
Let me know if you need more information on this.