You do not get any better of a deal if you book early or wait. So that isn't the issue. If you book outside the cruise line offered excursions then you should book before the cruise to ensure you can get into one (i.e. Captain Marvin's Sting Ray tour in Grand Cayman). You can most likely still get into a non ship excursion if you just show up on the pier, but why risk it.
The ship booked excusrions can and do fill up, so if there is something you feel you must do, then go ahead and book now. BUT here is my tip for the ones you don't know you want to go on. Before you get to port, Carnival will have an "excursion seminar" where they go into pretty good detail on each offered excursion. Go to that to help you decide which one you want to try. After that let out (or even during) the shore excursion desk will form a huge line... don't stand in it. Go to your cabin and book your choosen tour through the TV booking system. It will be charged to your sign and sail card either way, but this way you do not have to wait in line AND you may beat someone onto a tour before it can fill up.
Carnival Cruise Lines:
Fantasy 90, Celebration 95, Victory 05, Conquest 05, Spirit 6/06, Freedom 6/08, Holiday 7/08, Victory 6/09, Valor 9/09, Dream 6/10, Splendor 8/10,Conquest 8/11,Magic 11/11,Triumph 4/12,Spirit 7/12,Freedom 11/12, Triumph 2/13 - The fire cruise
NCL Dream October 2006, RCCL Mariner OTS June 2007