I am going to stick my head out, as I have thought a good deal about this. I am first and foremost concerned with practicalities and decency and what actually is going on and a viable solution.
(Obligatory disclaimer: this is my personal opinion and experience. This does not reflect any law, nor does it cover all kinds of permissions given with various licences. I am not encouraging people to unfair use, merely trying to attract attention to this problem.).
Software
Attribute for software is pretty straightforward. Depending on the type of programme or snippet, there seems to be some fair alternatives:
- Write the attribution in the source code. Chances are, that if it is
a snippet, the creator has already written this, and indicated how
they want to be credited.
- Some code for frontend often have a link attached (for example
slideshows). Personally, I think it is ok to remove this link for
design purposes, as long as the creator is credited somewhere
accessible.
- Software is straightforward, because it is "unlimited space", and the
various GNU, copyleft, CC etc have usually pretty clear guidelines
that are actually not a big hassle to conform to.
Web graphics
This is also fairly straightforward: a link on the site saying "credits" should be a reasonable thing. Again, web has pretty much unlimited space. So a background-tile for web, an icon or icon set, credits go on the credits page, with a link to the creator. This could, actually, bring some good effects for the company. Not only demonstrating that "we stand on the shoulders of giants", but also that credit where credit is due. It will in return be easier to demand credit further down the line.
In the above instances, I am convinced we all could get better at this. It is not often I come across a site that has "credits" attached to it. Some of this information could be buried far down, via "about us" and whatnot, but that is good enough. There are endless possibilities in placing a "credit" link. It should become a standard element for web work on par with headings, footer, columns, about pages etc.
Personally, I can be a little messy in my design process, so I confess that I can loose track of the objects I use in the sea of the ones I do not use. Into the workflow: a system for keeping track of this.
Print
Books and magazines should be pretty easy. In fact, book design and layout have a long tradtion and good guidelines for where to put credits.
Then the headache; small, printed items:
Business cards, ballpoint pens, lanyards, key rings, t-shirts, memory sticks....
There are few options. As @AmeliaBR points out, you could use a short link on a business card. Even better, you could put it on the reverse side. However; I do not think this really is viable; no one is really going to do that. And it becomes pretty much impossible for smaller stuff. I would like to see real-life examples and be proven wrong here, though. Business cards, key rings, memory sticks are small, the real estate on them precious. So then there seems to be these alternatives of bad practice:
- Use it anyway, with no credit.
- Alter the graphic slightly and pretend all is well. This is more
dishonest than the one above.
- Do not use the graphic in question on the business card. Find a
secondary elements from the design process that can replace it. This
too is not likely, if the graphic in question is a logo or an icon.
Often, the client will say; "use this logo/graphic element on the product"; you are not always the one designing the entire range of graphic materials, so your freedom to sort this out in the best possible way is not always there. You can insist, you can demonstrate to the client that this is breaking laws, licensing and flies in the face of all decency and respectability. You can refuse to do it. Sometimes this is like talking to a wall. Personally, my experience is that this is easier implemented in USA than other places. The fear of litigation is much stronger there.
There is a shift going on, regarding sharing, using and creating mashups of what you find on the net. On Facebook, the coolest thing is to have lots of people sharing your kitty-photo, so the idea of ownership is sliding dramatically.
So here is what I think:
(I am no lawyer, do not quote me on this as an excuse, follow the laws governing these things until they change):
I believe we need to rethink the whole idea of use. I believe that the only way this can work in the future, is if there is the possibility of using the graphic on small print without credit.
This is the current practice, though no one is ready to admit it. It is illegal in many instances.
In our days, everyone printing business cards etc have a presence on the web. And if you go down to small print objects, they oftentimes only display a logo and a web address.

However, I strongly believe we must get much, much better at giving credits on web and in larger print objects.
What I think is the most viable solution, is the acceptance that credits will be there, on the web. And they should be, much more than it is now, visible. A link. Reasonably prominently displayed. And there a list, a graphic demonstrating where the graphic was used. Stick a pic of the object in there, and list credits. Interestingly, this could also be good for the client. Image searches will show you their lanyards etc.
Small .txt files squirrelled away in some dark nook is not good enough. I have come across a few, usually in software, and I do not think I have ever read one. Even readme-files I rarely open.
This is the way forward. The Internet is a fairly young thing, we are still figuring it out. Instead of nail-biting and hoping no one will notice that you used something on a key ring, we should put a good effort into standardising the credit-pages.