Clustering: Collections of machines in a fixed configuration designed to operate and be managed as a single machine. Differs from grid computing where resources can enter and leave the pool as necessary.
Distributed computing: Connecting computing resources over a network for the purpose of consolidating CPU power. Grew out of a need for scientific and technical users to increase their processing power on limited budgets.
Grid computing: Connecting storage and data as well as CPUs from multiple systems into a centrally managed but flexible computing environment. True grid provides distributed resource management of heterogeneous systems.
Utility computing: One of a variety of marketing phrases (others include autonomous computing, computing-on-demand, adaptive enterprise) that describe business models for letting customers retrieve computing resources as necessary. Grid is the underlying technology for all of those models.