You need to keep in mind that the user must have "run as batch" permission, and then Task Scheduler may well be your answer.
However it is worth noting that many system services you take for granted may not be available to a batch task. Note also that "batch" in this sense isn't the same as "scheduled" since a task that Scheduler kicks off at logon runs interactively.
Stuff like video capture might not be there for a truly batch task, and I believe user interaction isn't possible even after a user logs on (even if the same user). This is something to test to be sure.
Another problem can be things such as USB hub and device recognition and "installation" which may not be complete at the time Scheduler starts your "at startup" task. Networking has some of the same caveats, especially for wireless. UPnP NAT services also take time, and aren't there until Windows gets done accumulating replies from the other nodes on the LAN (router, other PCs, etc.). This means you sometimes have to impose a delay in the program for a minute or more until the expected services are all available.
You can run into the same thing with a user set to auto-logon who has Startup folder tasks. Even though the tasks run after the auto-logon, system services may still be initializing.