An new official update IMM76 (Android 4.0.4) is poised to roll out for the Nexus S. The update file, which weighs 18MB, can be downloaded directly from Google's servers and applied only over stock IML74K (Android 4.0.3):
It has been shown to work on the i9023 variant, and we're currently trying to figure out whether it works on different flavors of the i9020. If you have the Nexus S 4G on Sprint, sorry, this update is definitely not for you - you have access to 4.0.4 already anyway. And, of course, if you have the Verizon Galaxy Nexus, your 4.0.4 update leaked last month here.
Update: A user on XDA reported success flashing this on the T-Mobile Nexus S (of course, you still need to be on 4.0.3 for it to work), but we haven't been able to confirm with our Nexus, which fails with an assert.
While we don't have the official changelog for this update, XDA poster HAKA provided his impressions (along with a flashable zip that gives you root):
My first impression: Noticeably faster!
Going to cover everything in points:
1. The time lag between clicking & opening menu items is now negligible, just like Gingerbread.
2. The camera from lockscreen loads up faster.
3. The rotation animation is faster.
4. Battery bug is fixed!
5. 3D apps load up faster...
6. Overall a faster & better update by Google.
7. I think Ice Cream Sandwich was not finished until December, but now it feels a finished/polished product.
Whole UI is noticeably smoother
Launcher still lags
Kernel is updated, but the version is still old.
Old GB sounds
Update: The ROM is rootable, download this zip and flash in CWM to root.
Update: It looks like updates on Nexus devices without SD cards can not be performed manually unless you either root or use a custom recovery, like CWM - otherwise, you'll get the errors many of you are seeing. It seems to be happening because the OTA files check whether they're located in /cache, which isn't writable unless you root or receive a proper OTA. JBQ himself confirmed it, but said it wasn't on purpose. The preferred solution seems to be using a custom recovery, then installing the above update. Galaxy Nexus has a similar problem, so you're not alone.
Image via XDA