In all games I've ever played, if a player is all in for less than one big blind, players must still call an amount equal to one big blind and the minimum raise is still to two big blinds as usual.
If after action has been closed for the betting round, there is one or fewer players who are not all in, then any surplus bets would be returned to the non-allin player.
To answer your specific scenario, if the blinds are 50/100 and both the small and big blind only have 25 each, the same logic also applies, so players wishing to call would do so for 100 and the minimum raise would be to a total bet of 200. If everyone folds to the blinds (highly unlikely), they would be in a showdown and run the board for a total pot of 50. If one player limps for 100 (or raises to any amount) and no-one calls, then there would be a 3-way showdown between that player and the two blinds and the player who limped/raised would get back all of the money they put into the pot, except for the 25 required to call the all-in players in the blinds. Finally, if a player limps or raises and one or more other players call this bet, there would be a side pot and any further action would be into that side pot as usual. So if a player limped for 100 and another player also limped behind, then there would be a main pot of 100 (4 x 25) which all of the players could win, and a side pot of 150 (2 x 75) which only the two players which were not all-in could win, with further action into that side pot.