Let's consider a vector bundle $E$ of rank $n$ over a compact manifold $X$. Consider the associated Grassmannian bundle $G$ for some $k < n$, obtained by replacing each fiber $E_x$ by $Gr(k,E_x)$.

Let's suppose that there is a full flag of subbunldes $F_1 \subset F_2 \dots \subset F_n \subset E$. I think that in this case we are able to define relative Schubert cycles on G which restrict to usual Schubert cycles on each fiber so that we can apply Leray-Hirsh theorem to deduce that $H^*(G) = H^*(X) \otimes H^*(Gr(k,n))$.

- Is the reasoning above correct?
- Can we still compute $H^*(G)$ in the case when the full flag of subbundles doesn't exist?

EDIT: I meant complex vector bundles and complex Grassmannians. Also the bundle can be assumed holomorphic or algebraic if it makes a difference.

EDIT: Ben in his answer mentions Serre's spectral sequence that can be used in this case. Is there a reason why it will degenerate to leave $H^*(X) \otimes H^*(Gr(k, n))$ as a result?