Hi Peter,
You can set an event to do this, but not directly through iCal's user interface.
Make an event on the 13th of the month. Drag the event to the desktop and delete it from iCal. Drop the desktop copy on a text editor (eg Text Edit) and add the following line between the BEGIN:VEVENT and END:VEVENT lines:
RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=11,12,13;BYSETPOS=-1
The file will look something like this (although this is from iCal 5):
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Apple Inc.//iCal 5.0//EN
CALSCALE:GREGORIAN
BEGIN:VEVENT
CREATED:20110914T221142Z
UID:582E-43C8-8CF3-4A817D44F526
DTEND;VALUE=DATE:20110914
TRANSP:TRANSPARENT
SUMMARY:New Event
RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=11,12,13;BYSETPOS=-1
DTSTART;VALUE=DATE:20110913
DTSTAMP:20110914T221142Z
SEQUENCE:1
END:VEVENT
END:VCALENDAR
Save the file and drag the it from the desktop back into iCal. It will now repeat on the last weekday before the 13th every month. It will not take public holidays into account.
Best wishes
John M