I need to search for another script myself if I want to refer you to one, although I strongly believe there must be more scripts/addons which can do it.
--
But what I can say is that all the DPs you see are always already saved into a folder. This folder is the exact place where scripts/addons like "Steal Contact" get the DPs from. So, in other words, you already have the DPs on your hard disk.
The folder can be found in your Windows temporary files folder as a subfolder named "MessengerCache".
eg: C:\Windows\Temp\MessengerCache
In that same folder you will also find the custom emoticons your contacts have used in chats with you, and other 'custom' content.
The name of the files are hashed and the files have no extension. But if you have a decent graphics program like PhotoShop or PaintShopPro which doesn't rely on the file names to show the file contents, you can simply open them or browse the folder and you will see all the PNG, GIF or JPG graphics.
See
CookieRevised's reply to Where does MSN store it's avatars?
and
CookieRevised's reply to Where does MSN store it's avatars? (follow up on first (old) post)
--
However, the "Steal Contact" script, or any other similar script for that matter, have always done the same thing, nothing has changed in the behaviour there.
The only reason why it doesn't "save all your friends' DP" anymore and "only from the person I'm talking to" is because a DP (or other custom content) can only be saved if you (aka your Messenger) actually see it. Thus, if you don't see the DP, there is nothing to save.
So, disabling the option to display the DP of your contacts in the main contactlist has most likely been the cause. Because if you have disabled that option in Messenger, then Messenger (and thus the script relying on that information from Messenger) will not request the DP anymore for that contact. It will only request the DP if you actually open a chat with that contact.
The option can be found in the Window Live Messenger options window: Tools > Options > Layout > Contact List