Like Colin, I had problems with a few long-winded processes. For the ones that took a few seconds, I changed the color and caption of the command button from a basically pale aqua box around darker blue text to a pale yellow box around dark red text, with the word "Commit" becoming "Running..." When it finished, the box would vanish until the form got dirty again. Not saying any one way is better than any other, but the point is that you CAN advise users that stuff is happening.
As part of the process, I sometimes had to build external spreadsheets or import them. What I did for those processes where I had stepwise control (as opposed to a monolithic query) was I built two overlapping rectangles. In my case, long and skinny, with thin borders. Normally they were invisible. However, if one of these long-winded processes would start, I would make them visible and diddle with the length of the one that was "on top." I would set its width to 1 twip, change its background to a contrasting color, and then at each step, I would recompute its width as a percent of the width of the bottom box (which was constant in length). When the ugly process was done, both rectangles would vanish.
This post isn't meant to say this is the only way but rather is just to give you ideas of how to show your users that something IS happening.