Linux uses a init.. Init is the first program that starts it starts all the other programs that setup and run your OS. It's behavor is controlled thru 'runlevels' and 'init scripts'.
A paticular runlevel tells the OS what scripts to run.. runlevel 1 and runlevel S are the first runlevels and they setup your hardware and basic stuff (called single user mode, also). Runlevel 5 is the default runlevel and it is for normal usage, Runlevel 3 is usefull as it's almost like runlevel 5, but without the graphical login... Usefull for when you need to install nvidia's propriatory drivers (use the command 'telinit 3' from the console). Runlevel 0 is for 'halt' or shutdown, and runlevel 6 is for reboot.
So if you want to a program to start up at bootup time you'd have to edit or create a init script.
Redhat/Fedora provides a /etc/rc.local file to do that. Any command you put in their will be ran at bootup time after every other startup task has been completeled.
Also you can use the 'nice' command to assign a priority to a program. The higher the priority, or the 'less nice' it gets, the more time and resources are assigned to it. The lower the priority, or the 'more nice' it gets, the less time and resources it gets.
Think about it in the way that a 'nice guy' will let other people in line in front of him, while a unnice guy will bully people for their stuff.
So that way you can run the command at boot, and assign a low priority so that it won't hog the resources as you use your desktop or run other commands. So you can set it to run in the background pretty much and only use the CPU when other programs don't need it. You may need to try different 'niceness' levels to get the best performance, though.
So in /etc/rc.local file you put:
echo 'starting folding@home'
nice -n 15 /home/bill/Folding@Home/FAH502-Linux.exe
(the numbers range from 20 for very nice to -19 for very not nice)
Although you may want to copy the file to /usr/local/bin/ for convienience sake.
the rc.local may be in /etc/rc.d/ instead of just /etc, but I think I got it right.
for the grub thing try adding this to your /boot/grub/menu.lst or /etc/grub.conf or something like that file:
title Windows XP
rootnoverify (hd0,0)
makeactive
chainloader +1
were (hd0,0) matches the harddrive number and partition number. Grub (like a programmer) starts counting at zero, so 0 = the first drive, 1 = the second drive, and so on and so forth.
All you have to do is edit the file and it should show up by default. Grub reads that file each time it boots up. Also whenever editing config files make a copy of the original incase you make a typo. Then if you mess it up (happens to everybody) then you can just copy back the original.
Although this should of been setup by default for Fedora...