Epidemics of infectious disease are governed by a few simple processes. But forecasting epidemics is surprisingly difficult. Using time-series data for Ebola and influenza as examples, I will show how important infectious diseases routinely violate canonical epidemic theory, by displaying systematically different dynamics in similar and connected host populations. Efforts are underway to to account for these aberrations, by updating basic epidemic models (e.g. Lotka-Volterra) to include parsimonious measures of heterogeneity in host and pathogen populations. The goal is to develop models with rich enough dynamics to be relevant to real-world epidemics, that are also simple enough to fit to time series of disease incidence by maximum likelihood.