How can I prevent new iCal events from being all-day by default?
You can use iCal's new 'plain English" approach to specify a starting time.

Double-click to create the new event, and include "at 6pm" or whatever when you type in the description. When you hit Return, your event will show the required starting time and will default to a duration of one hour.