Linear Predictive Coding for general signals
There may be a misunderstanding about LPC here. For one, it is mainly used for speech because it was designed to fit the model of the human vocal system. The figure below is taken from Purdue's VISE lab in one of their speech processing exercises. The figure shows speech modeled as a filter that is excited by either an impulse train or white noise. LPC works well for speech because it gives you a concise way of describing the filter part. You also need to estimate the driving frequency of the pulse train, detect if a time segment is voiced or unvoiced, and control for the power of each time segment.



In the frequency domain, the a speech signal will look like


and all the LPC is expected to do is to fit the spectral envelope.


  I see why LPC is often used for speech compression - because the error e(n) is roughly white and so we can roughly model it by its variance.


The significance of a white, particularly additive white Gaussian, error signal is that it means that you have used all of the information. If your error is highly structured, it means that you could do a better job at modeling the system.


  Do people use LPC for things other than speech, and if so, how do they go about modeling e(n) to achieve compression?


I'm not aware of it being used for anything apart from speech. As stated above, the vocal system is being modeled by LPC, not the error. The vocal system is modeled using the source-filter model, and LPC is a good way of describing the filter part of the model. 

I'm not sure about your second question, but I hope the rest of this help. Speech encoding with LPC is a really interesting, particularly because it works so well. If you want to do some matlab experiments, you could try Lab 9b on Purdue's VISE lab.