You can definitely have more than one commander on a Starfleet ship. The XO would be a commander, the Chief Medical Officer would probably be a commander. Possibly, the Chief of Security and maybe the Chief Engineer.
Canon-wise, for a ship like the Enterprise, it was normal for the First Officer to be a Commander, and department heads to be Lt. Commanders. Crusher and Troi chose to take the bridge officer test for the commander rank, but in neither case was it necessary. Tactical / Security must not have been valued as highly, as Yar and Worf were both straight Lt.s.
I refer you to Star Trek II: WoK, where Admiral Kirk is riding around in the Enterprise under the command of Captain Spock (for a little while, anyway).
But also, you cannot make your BOs Captains, only Commanders.
Also Scotty held the rank of Captain.
You seem to forget that in a navy, and starfleet holds to that ranking system, the commander of a ship is the captain of that ship regardless of actual rank. In the case of Spok and Scotty here they hold the rank of Captain but Admiral Kirk is the ship's captain (confused yet?)
In fact if there is a captain of marines aboard a ship he is autromatically raised in rank to major for the duration because there can only be one ship's captain.*
*This was true of Napoleonic era navies but may have changed now
Season 7 of Generations:
Dr. Crusher Commander
Data Lt Commnader
Geordi Lt. Commander
Worf I can't remember if he was a LT commander during season 7 or not.
In any case tossing worf out, Picard (a captain) had 3 commanders, and 2 Lt Commanders. Yet Data was listed as 2nd in command.
Well, Troi and Crusher were only ever in command of the ship during emergency situations (Disaster and Descent for example). And if we were to take Troi's ability to pilot the ship (or the lack there of) as a parallel to her command ability, well, she crashed the shp twice. At least she only hit a planet once.
I'd roll with Data as second officer over either one of them.