I think the search on this selector $('#thetable').find('tr.listing :checkbox') is what is taking the time in IE.
There are a couple things you could do...
It sounds like your showing a result set in a table. In this case you may want to implement paging and have the script go back to the server for more results on the page change event. This will mean less DOM nodes to process, and should take care of the stop script problem.
Another approach you could try is giving your check boxes predictable ID's and then doing a direct select such as $("#thetable_checkbox_" + checkboxid) and then having a forloop iterate through the results, changing the checkboxid you are selecting on.
Here is some pseudocode as an example
for (int x = 0; x < numResults; x++) {
setTimeout(function() {
$("#thetable_checkbox_" + x).bind(function() {
clickEventFunction()
});
}, 0);
}
Where your checkbox ID's have been generated on with ID's like thetable_checkbox_1 etc.
The approach you mentioned for breaking up the script with setTimeout will also work, but you need to avoid jQuery selectors that could take a long time. You can also set the timeout value to 0 since you want it to run as soon as the browser is ready. Setting the timeout to 0 yeilds to the browser and allows it to run any operations it has pending before returning to your script. If the script is long running you should display a modal loading dialog so that the page is only displayed to the user when it is ready.