"the prudent considers well his steps" (Proverbs 14:15)
Ensure your sub-floor is stable
If there is any creaking or 'give' in your subfloor, your tiles will eventually move once laid. I always recommend stabilizing the subfloor by screwing the whole subfloor more securely to the joists.
Install a suitable surface between tile and a wooden subfloor
Traditional scratch coat
If your subfloor is wooden, yet stable, you will need to lay a scratch coat surface under the tiles. Scratch coat consists of a mesh underlay fastened to the wood, overlaid with a thin coat of cement (thin-set mortar), which is a good under-surface for tile. Since floor tile is usually laid with thin-set mortar, cement bonds with cement perfectly.
Schluter DITRA system
Schluter DITRA is a polyethylene membrane with a grid structure, bonded to the subfloor with thin-set mortar. Tile is adhered to the DITRA membrane using thin-set. Schluter DITRA is a very expensive system, but provides the Rolls Royce standard for vapour management, water-proofing and minimizes the transfer of movement by the subfloor. If your floor may be subject to structural shifting, excess vibration, humidity or moisture, I would recommend DITRA.
Level the floor before laying tile
Peaks and valleys are OK in the great outdoors, but aweful on your floors. Make sure your tile installer levels floor surfaces with 'self-levelling cement'.
'Butter' the tile before laying it
Since cement adheres to cement, make sure your tile installer spreads thin-set over the whole surface of the tile before laying it.
The use of spacers is crucial in order to provide straight grout lines and a straight and uniform look.
Use quality materials
The old adage is true - you get what you pay for. I always insist on superior quality materials that will last a long, long time.