Unlike chicken or steak, fish is a completely different animal on the grill (pun very much intended). Since fish is delicate, it has a tendency to fall apart on the grill which leaves you with a mess to clean and your eaters unhappy. Follow these rules when preparing grilled fish and you will have perfectly cooked fish every time.
Tip #1: Get the best fish you can get your hands on. This is an obvious nugget of information but can sometimes be overlooked. Just like with any star ingredient, you really want to focus on quality. Your nose will be your best indicator. The fish should smell of the sea or river and not have a distinct "fishy" scent. The flesh should be bright, moist and uniform in color while the scales should be tightly adhering to the skin. Look for filets with the skin attached as that will provide a layer of protection on the grill. Whole fish also work beautifully on the grill.
Tip #2: Do not over marinate the fish. The acid breaks down the protein and makes the fish more susceptible to flaking on the grill. Keep the seasoning simple with olive oil, salt and pepper or a dry rub. You can always dip the fish in a marinade once it has been cooked to soak up all those great flavors. The technique is called escabeche - a combination of oil, acid (citrus juice or vinegar) and aromatics (think garlic, fresh herbs, ginger, fennel, chile peppers etc...).
Tip #3: Always start skin side down. The grill should be cleaned and free from any bits of leftover food. This will help prevent the flesh from sticking to the grill. Also, leave the filets in one place. They will only need to be turned once. Cook the filet for 3 to 5 minutes until the flesh begins to turn opaque and the skin gets crispy. If you force the filets off the grill, they will fall apart. They should remove easily once cooked.
Tip #4: Experiment and enjoy! Food is meant to be fun so don't beat yourself up if you do not get it right the first time.