What are some good problems which can be solved with a queue?
One example I've used for students in the past is a shared printer. 

If I have five people using a printer all at once I will have a problem if two of the five attempt to print at the same time.  What can I do?  I can put up a sign on the printer--"Only One User At A Time Please" and hope everyone sees and follows it.  Of course then the users need to coordinate their use. 

I can (software) lock it so that only one person can print at any time.  But when the second user tries to print he or she is blocked until the printer is free.  And the third user is blocked longer etc.

Or I can set up a queue.  As each user prints the print job goes to the queue.  The printer looks at the queue for jobs to print and as it prints them it removes them from the queue.  No one is blocked and the printer doesn't fail because two people try to print at the exact same moment.