A dirty hack is a piece of code that exists for no good reason but to simplify the life of someone at some point in time. A dirty hack has usually some (or all!) the following characteristics:
Is useful to only a small number of clients;
Is useful to only one person;
Is difficult to explain and-or understand;
Is difficult to maintain in the long run;
Breaks the architectural and design choices of the overall system;