Not to nitpick here but we are talking about the "system tray" here, a completely different animal from the task bar.
XP had an annnoying bug where an item in the system tray would fail to show at startup.
A peek in Process Explorer would show that the item was running but no show in the system tray.
Apparently that behavior is carried over to Win 7.
Sometimes even placing a shortcut to the offending item in the startup menu would not 100% fix the issue.
Back in my XP days an individual at another forum pointed me to a neat program that creates a script that you can use to force these items to display properly.
WinX32 by Don Beusee is the program and I've been using it ever since.
link below
Link Removed due to 404 Error As you can see from his site you can run several programs from one shortcut and have them start at different times.
I've just added the shortcut command for Network-Activity-Indicator to my all purpose WinX32 startup shortcut.
Using Startup Delayer
link below
r2 Studios - Software I set my all purpose shortcut to execute about 45 seconds into boot, after my desktop is fully functional.
One by one these startup items execute. This cuts my boot to a functional desktp time to ~42 seconds.
The items in the shortcut are things I deem absolutely needed to start with windows.
As an example, below is the contents of my all purpose WinX32 script.
/sleep 0
"C:\ProcessExplorer\procexp.exe"/hide /t
/sleep 1
"C:\network-activity-indicator\NetworkIndicator.exe"
/sleep 2
"C:\Program Files\DreamBreed DreamBirthday\DreamBirthday.exe"/hide /t
/sleep 4
"C:\Program Files\Notebook Hardware Control\nhc.exe"/hide /t
/sleep 6
"C:\Windows\System32\net.exe"/hide ""START"" ""W32TIME""
/sleep 8
"C:\Windows\System32\w32tm.exe"/hide ""/resync"" ""/nowait""
/sleep 10
"C:\Program Files\Elaborate Bytes\VirtualCloneDrive\VCDDaemon.exe"/hide
/sleep 11
"C:\Program Files\Adobe\Reader 9.0\Reader\reader_sl.exe"/hide
One of the commands fixes an issue I've had with the Windows Time service failing to start with Windows.
The other time related command forces Windows Time to update my system time at every boot.
The sleep parameter is the delay in seconds.
The Startup Delay program executes the script about 45 seconds after I start windows from my multiboot menu and one by one the commands execute.
This happens after my desktop is up and full functional.
I can be using my desktop while the commands quietly execute.