In some hyperbolic PDEs the flux is nonconvex. One example is equations in magnetohydrodynamics. What are the complications in the wave structures of such problems? What general precautions one should take while coding such a system? Which numerical schemes work well for such systems?
A nonconvex flux function means that the characteristic velocity associated with a given characteristic field may not be a monotone function of the conserved variables. This can lead to non-classical Riemann solutions; for instance the total number of (shock, rarefaction, and contact) waves arising in the solution may be different from the number of equations. Another important difference from the numerical point of view is that the maximum and minimum wave speeds occurring in the Riemann problem do not generally correspond to the maximum/minimum over the input states.
A full answer to your question would be very long. This is an area of active research, but you might start by reading the relevant sections of LeVeque's text (see Chapter 16) and experimenting with the Buckley-Leverett Clawpack example in the code that accompanies the book. The Buckley-Leverett equation is one of the most well-examined non-convex fluxes and there are several good references to the literature available in that book chapter.
Another interesting example for which some successful and unsuccessful schemes are known is the KPP problem introduced in this paper (be sure to look at subsequent papers that cite it). It seems that schemes without sufficient dissipation tend to generate a shock in a region that should instead have a rarefaction.