Partition on sublists beginning with a certain marker elements

Split[list, (#2 =!= {a}) &]
{
 {{a}, {0, 2, 5}, {5, 4, 1}},
 {{a}, {1, 1, 0}, {1, 4, 2}, {3, 3, 0}}, 
 {{a}, {3, 2, 0}, {1, 4, 1}}
}

If you add Map@Rest you will get the first form.

Alternatively, for V10.2+ users:

SequenceCases[list, {{a}, Except[{a}] ...}]

or

SequenceCases[list, {{a}, Longest[___]}]

Rest /@ Internal`PartitionRagged[list, 
   Flatten@Differences@Position[Append[list, {a}], {a}]] // Column

enter image description here


SplitBy[l, FreeQ[{##}, a] &] /. {{a}} :> Sequence[]

Or

Level[Nest[
   MapAt[TakeDrop[#, First@FirstPosition[#, {a}]] &, 
     Level[#, {-3}], -1] &, {l}, 
   Length[Position[l, {a}]]], {-3}] //. {a} | {} -> Sequence[]