Skew is the difference in insertion delay between two registers on a given clock domain...the clock domains can be different.
Useful skew is the concept of borrowing time from a register in a datapath, which has positive slack, to add to the launch register, which has negative slack thereby causing the entire path to meet timing. This is accomplished by adding delay to the clock of the register with positive slack.