Charlie, I know exactly what you are talking about. I just wanted to make sure that we are talking about the same thing. Also, I was curious to know which browser you use. With Internet Explorer, you can right-click in a page and select "Create shortcut" and it will create an Internet Shortcut file on your desktop and use the the favicon from the website for the icon. I have seen this work on my desktop and I have seen the icons get messed up just as you describe. I think the problem is that the favicons from the websites live in some temporary place where they can be deleted or renamed.
If you have some URLs on your desktop that you plan to use often, and are willing to go through a little extra trouble, you can make the icons more permanent. First, you need to make a folder to hold your website icons. Then navigate to the page, make your desktop shortcut, then find the favicon in the browser's cache. In IE7, select Tools -> Internet Options -> Browsing History Settings button -> View Files button. Set the view to small/medium/large icons so you can see the one you are looking for. It may be that they are always called "favicon.ico" with sequence numbers in square brackets . Make a copy of the icon you are after in the folder you designated to hold your website icons. Rename the .ico file to something descriptive. Now, find the desktop shortcut, right-click and select Properties and on the Web Document tab, click the Change Icon button, then click the Browse button. Navigate to your website icons folder, find the one you want and choose it. Done.
This procedure will keep those icons in a permanent place instead of some cache folder somewhere. Once the icons are set this way, they should not get jumbled or reset to default. If they do, it will be easy to set them back.