Grand Turk is very nice and is great for snorkeling. However, there is nothing else there but the beach so there isn't much to see if your not a beach person. Plus, we didn't have much time since we had to be back on the ship at 2:30. If you go on the beach where Margaritaville is, there are good snorkeling spots there.
San Juan is a beautiful city and I've been there in the past. The fort El Morro is a must see as well as Old San Juan. Avoid certain areas that may seem shady and don't leave Old San Juan by foot because there are really seedy areas. We didn't go to the rum factory but we heard it's not worth going to. Also, you've got to eat at Mojito's :323 Recinto Sur | zip 00901, San Juan 00901, Puerto Rico. This is excellent local Puerto Rican food. There are shops everywhere to buy souvenirs. We arrived in San Juan at 1PM and stayed until 11PM which was really nice.
We took the Water Island Water taxi across to a secluded island and rented golf carts and went to a beach. There was hardly any people there and it was nice riding around the island. Be careful about the water taxis because we were afraid that we weren't going to get back in time to the ship, so its probably best to go early and get back early to guarantee that you will be back in time. We didn't know how reliable the taxis were, but they came and picked us up. It was only an 8 min. ride from Dock D in Crown Bay Marina. The beaches are really nice and there are shops all near the terminal to buy souvenirs.
Before arriving back to Ft. Lauderdale, we went to Half Moon Cay, Bahamas (HAL's island). The island was beautiful! It was one of the most beautiful islands I've seen! There was a small water park for kids, an Island BBQ, and shops. The water was a gorgeous blue and the sand was really soft and white. This was one of my favorite ports of all.
Fort Lauderdale is really nice with lots of good restaurants and shops. The beaches are really nice too. After the cruise, we stayed at B Ocean which was a beautiful South Beach style resort.