The only way I can think of to run the script before the Welcome Screen is Contrex's idea about using the Group Policy startup script. I think the GP startup scripts run before the Welcome Screen. I also think that if it is going to work, you would need to remove any prompts for the user, as there will not be a console to display any output. So if it were to work, you would have to change the script to something like
defrag -f C:
defrag -f D:
defrag -f E:
defrag -f F:
and it would defrag every time the computer booted. I think it will run as a process in the background, so you could still log in while it was defragging. The computer would probably run slow until the defrag was finished, unless you killed the process with a program like TASKMGR or TASKKILL.