First you need to have a queue to use as your dead-letter queue. This is just a normal local queue. Some platforms provide you with the SYSTEM.DEAD.LETTER.QUEUE, but I prefer to avoid using a system queue (and also it's not pre-defined on all platforms). My queue manager MQG1 has a queue defined thus:-
DEFINE QLOCAL(MQG1.DEAD.LETTER.QUEUE) DESCR('Dead-letter queue')
Then you have to tell the queue manager to use said queue. You can do this with the following command.
ALTER QMGR DEADQ(MQG1.DEAD.LETTER.QUEUE)
Then you need to make sure you have something monitoring that queue, like a dead-letter handler, or at a very minimum, something that will alert you if you get a non-zero depth on the queue.
You can read about the dead-letter handler here.
This is no different on IBM MQ V8 than other versions. You can additionally on V8 configure channels individually to use the above queue with the attribute USEDLQ(YES | NO). But you first have to do the above.
Let me know if that doesn't answer your question.
Cheers,
Morag