Thank you all for your answers. There are some great ideas between them. I decided that instead of accepting one of them, I decided to collect all ideas from the posts above, summarize them in one answer, and accept this answer as reference for future readers.

Reasons why players hoard:


They develop a habit to solve certain situations using certain tools. When they have a tool which can only be used once, they will never develop a habit for using it. As a result they forget that they actually have this tool.
They don't know what the item is actually doing, so they aren't aware when they are in a situation where it could be useful.
They don't want to do a mistake and prevent further progress by using an item too early.


How to prevent it as a game designer:


Give the player a hint when in a situation where a certain one-shot item would be useful
Make it possible to re-obtain the items after use.
Give the player so many one-shot items, that each individual one doesn't seem that valuable and irreplaceable.
Add severe consequences to dying (more than having to reload the last savegame), so that the player will use one-shot items when desperate.
Don't make them single-use. Add a long cooldown to items instead or allow them to be recharged with another resource, so that the player can use them multiple times.
Make it impossible to hoard them. When the player is aware that they will lose the item anyway, they will use it sooner. This could be done by adding a time-limit, removing them after completing the level or severely limiting the number of items which can be carried at a time.
Punish the player for hoarding too many one-shot items, so that they will be motivated to get rid of them soon.


How to prevent the "Too awesome to use" syndrome
I have styling for a &lt;div&gt; in my page as below;

.maintab1{
background:rgb(0,65,135);
background:-moz-linear-gradient(-45deg,  rgba(0,65,135,1) 0%, rgba(30,127,201,1) 29%, rgba(53,154,255,1) 62%);
background:-webkit-gradient(linear, left top, right bottom, color-stop(0%,rgba(0,65,135,1)), color-stop(29%,rgba(30,127,201,1)), color-stop(62%,rgba(53,154,255,1)));
background:-webkit-linear-gradient(-45deg,  rgba(0,65,135,1) 0%,rgba(30,127,201,1) 29%,rgba(53,154,255,1) 62%);
background:-o-linear-gradient(-45deg,  rgba(0,65,135,1) 0%,rgba(30,127,201,1) 29%,rgba(53,154,255,1) 62%);
background:-ms-linear-gradient(-45deg,  rgba(0,65,135,1) 0%,rgba(30,127,201,1) 29%,rgba(53,154,255,1) 62%);
background:linear-gradient(-45deg,  rgba(0,65,135,1) 0%,rgba(30,127,201,1) 29%,rgba(53,154,255,1) 62%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#004187', endColorstr='#359aff',GradientType=1 );
}


I want to include an image image.png as the background image along with the CSS3 gradient.

I checked this stackoverflow question and this article and ended up with the following code;

background-image:url(image.png), -moz-linear-gradient(-45deg,  rgba(0,65,135,1) 0%, rgba(30,127,201,1) 29%, rgba(53,154,255,1) 62%);


and applied the for all other attributes and is working fine.

But this is not working in IE8 (only tested in IE8 and FF3+) and believe not going to work in older ones. The gradient is working perfect, but the image is not coming.

Can somebody tell me the way to display background image along with CSS3 gradient other than the way I already mentioned?
