Okay, taking a minimalist approach, I started out by installing just the SQL Server 10.0 Native Client on my Server 2003 machine (that's package sqlncli.msi). That turned out to be all I needed - all my other clients still work, and my DTS could now talk to the SQL Server 2008 running on Win Server 2008 without difficulty.
Some odd things:
It seemed that the package installed two drivers: an ODBC and a native driver. The native driver was identified within the DTS package as a small hatched square icon with a pink corner while the ODBC just had the icon that looks like most ODBC items. I only used the pink-cornered native driver and ignored the ODBC.
Within my DTS package, I have basically one data source pointing to the source and another to the destination. Hitherto, if I've changed something about either one (e.g. server, password, whatever), that change has automatically been reflected in all the copies of that source. So when my client shifted their source DB to a new server, I just updated one instance of the Source data element and it was reflected in all of them. However, in this case that didn't work: I had to visit every instance of the source and update it to tell it to use the native (not the ODBC) SQL Server 10.0 driver, and then I had to supply the parameters (server, logon, password, etc.) It was tedious, but better than redoing the entire DTS script.
I also had to refresh the transformations, however DTS does that behind the scenes. Updating the client wasn't enough, I had to open every transformation, click on the tab for the source, click on the destination, and then click on the transformations tab. I didn't have to change anything, I just had to do it. Once I did, and then saved the package, the script ran perfectly.
Thanks for your help!