I have always drained my oil/changed filter on my 95 BMW 525i when the engine is warm to hot. I usually let it sit for about 1/2 hour to drain as much out of the engine as possible. My filter is an insert that sits near the top of the engine.
Is this the best way? Why not start with a cold engine that has sit overnight and drain. Most of the oil has drained out of the engine. BTW, a quick search did not turn up anything on this subject. However, I am sure I missed somethng.