I was a big proponent of the array formula before I learned how to do the sumproduct trick. In fact, I've never once used the sumproduct function for its intended purpose, nor can I think of a situation where I would need to.
With 2007, though, I've become a big fan of COUNTIFS and SUMIFS. Between the two of them, they handle everything sumproduct could do, but are easier to understand and faster to execute. Also, AVERAGEIFS is a nice touch. As an example, I had a formula somewhat like this:
=SUMPRODUCT((A1:A1000="MEDICARE)*(B1:B1000)="SURG")*(C1:C1000<>"EXCLUDE)*(D1:D1000)) / SUMPRODUCT((A1:A1000="MEDICARE)*(B1:B1000)="SURG")*(C1:C1000<>"EXCLUDE)*1)
I know that final *1 is gratuitous, but it helps in legibility.
The replacement formula is:
=AVERAGEIFS(D1:D1000,A1:A1000,"MEDICARE",B1:B1000","SURG",C1:C1000,"<>EXCLUDE")
As for the original question, I use pivots all the time. There's no other way to analyze a large chunk of data as quickly. Sometimes it is far easier to pull a huge chunk off a SQL server and pivot it rather than try to figure out the proper syntax to get what you need right from the server. I see myself doing that a lot more with the 65,536 barrier broken.